要使用getRedirectResult()方法从 Google OAuth 登录中提取用户数据并将其存储在 Firebase Firestore 中,你可以按照以下步骤进行操作:

  1. 在你的应用中设置 Firebase 项目并导入相关的 Firebase 库。
  2. 实现 Google OAuth 登录集成,并在用户成功登录后,调用getRedirectResult()方法获取登录后的重定向结果。
  3. 在重定向结果中,你可以获取用户的授权信息和相关数据。
  4. 使用 Firebase 的 Firestore 服务将用户数据存储到 Firestore 中。

以下是一个示例代码,展示了如何从 Google OAuth 登录的重定向结果中提取用户数据并将其存储在 Firestore 中:

import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

import java.util.HashMap;
import java.util.Map;

public class GoogleOAuthHandler {

    private FirebaseAuth firebaseAuth;
    private FirebaseFirestore firebaseFirestore;

    public GoogleOAuthHandler() {
        firebaseAuth = FirebaseAuth.getInstance();
        firebaseFirestore = FirebaseFirestore.getInstance();
    }

    public void handleGoogleSignInResult(String redirectResult) {
        // 从重定向结果中解析 Google Sign In 账户信息
        GoogleSignInAccount account = GoogleSignIn.getSignedInAccountFromIntent(redirectResult);

        if (account!= null) {
            String userId = account.getId();
            String email = account.getEmail();

            // 创建或获取用户文档
            DocumentReference userDocRef = firebaseFirestore.collection("users").document(userId);

            // 将用户数据存储到 Firestore
            Map<String, Object> userData = new HashMap<>();
            userData.put("email", email);

            userDocRef.set(userData);
        }
    }
}

在上述示例中,我们首先获取 FirebaseAuth 和 FirebaseFirestore 对象。然后,在handleGoogleSignInResult()方法中,我们从重定向结果中解析出 Google Sign In 账户的用户 ID 和电子邮件。接下来,我们创建或获取与该用户对应的文档,并将用户数据存储到 Firestore 中。

请确保将"users"替换为你实际存储用户数据的 Firestore 集合路径,并根据需要添加其他相关的用户数据字段。

请注意,这只是一个基本示例,实际应用中可能需要根据你的具体需求进行更多的处理和验证。此外,还需要处理 Firebase 认证和 Firestore 的权限管理,以确保数据的安全性和正确性。

希望这个示例对你有帮助。如果你有任何进一步的问题,请随时提问。