java - 在 Firebase 身份验证后访问用户谷歌表格

标签 java android firebase-authentication google-sheets-api

我有一个通过 Firebase 平台管理用户的 android 应用程序(预先使用 google 帐户登录)。
成功登录后,我有一个 FirebaseAuth 实例,我可以从中获得对 FirebaseUser 实例的访问权限。

现在我想访问已登录的用户 Google 表格并对其进行操作(读取、写入、创建新表格)。我怎样才能做到这一点?

伪代码:

FirebaseAuth mAuth; 

.....
// sign-in with google...
.....

if(mAuth.getCurrentUser() != null){
        // Here for example I want to read the titles of all this user sheets
}

我读了 thread ,但仍然不明白如何使用我的 FirebaseUser 来访问 SheetsAPI。
我不需要实际读取或写入工作表的代码,只需要如何创建 com.google.api.services.sheets.v4.Sheets 实例。

我在 build.gradle 中添加了所需的依赖项,并从 Google API 控制台获得了 clientID 和 clientsecret,但我不知道如何使用它们。

编辑:

我也读过这篇 thread但这对我没有帮助,因为我不使用 GoogleSignIn。
这是我的身份验证过程的 fragment :
// create the intent for sign in

// in MainActivity
 startActivityForResult(
                viewModel.generateAuthenticationIntent(),
                RC_SIGN_IN);

// in viewModel:

    public Intent generateAuthenticationIntent() {
        List<AuthUI.IdpConfig> providers = Arrays.asList(
                new AuthUI.IdpConfig.EmailBuilder().build(),
                new AuthUI.IdpConfig.GoogleBuilder().build());
        return AuthUI.getInstance()
                .createSignInIntentBuilder()
                .setAvailableProviders(providers)
                .setIsSmartLockEnabled(false)
                .build();
    }

// MainActivity:

   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == RC_SIGN_IN) {
            IdpResponse response = IdpResponse.fromResultIntent(data);

            if (resultCode == RESULT_OK) {
                // Successfully signed in
                viewModel.authenticate();
                createHome();
            } else {
                Log.d(
                        TAG,
                        String.format(
                                "%s\n"+
                                        "response.getError().getErrorCode()=%d\n"+
                                        "response.getError().getMessage()=%s"
                                ,
                                response.getError().getErrorCode(),
                                response.getError().getMessage()
                        )
                );
            }
        }
    }


任何帮助将不胜感激。

最佳答案

这个问题很荒谬,因为使用谷歌作为身份验证提供者并不意味着一个人实际登录到谷歌。这不起作用,您需要先登录 Google 帐户才能访问任何内容。

关于java - 在 Firebase 身份验证后访问用户谷歌表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61939845/

相关文章:

Java - 将列和数据添加到现有 JTable 中

java - 在 android 嵌套的 PreferenceScreen 上显示向上/后退按钮?

java - 显示空白的 osmdroid map 图 block

php - 值在 TextView 中未传递到 Mysql 数据库

reactjs - 尝试 React + Firebase Googel Auth 时出现 TypeError : this. addScope 不是函数

flutter - 如何在带有Firebase的Flutter中使用电话号码进行身份验证?

java - 查找jar中的所有依赖项

java - 互联网棋盘游戏

java - 无法解析 : firebase-database-15. 0.0(并将数据库保留在应用程序中)

android - Firebase 检查用户的身份验证状态/如果用户存在