Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java firebase身份验证后访问用户google表单_Java_Android_Firebase Authentication_Google Sheets Api - Fatal编程技术网

Java firebase身份验证后访问用户google表单

Java firebase身份验证后访问用户google表单,java,android,firebase-authentication,google-sheets-api,Java,Android,Firebase Authentication,Google Sheets Api,我有一个android应用程序,通过Firebase平台管理用户(preforms使用google帐户登录)。 成功登录后,我有一个FirebaseAuth实例,从中我可以访问FirebaseUser实例 现在我想访问登录的用户Google Sheets并对其进行操作(读、写、创建一个新的)。我该怎么做 伪代码: FirebaseAuth mAuth; ..... // sign-in with google... ..... if(mAuth.getCurrentUser() != nu

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

现在我想访问登录的用户Google Sheets并对其进行操作(读、写、创建一个新的)。我该怎么做

伪代码:

FirebaseAuth mAuth; 

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

if(mAuth.getCurrentUser() != null){
        // Here for example I want to read the titles of all this user sheets
}
我读了这篇文章,但仍然不明白如何使用我的FirebaseUser访问SheetsAPI。 我不需要实际阅读或编写表单的代码,只需要如何创建com.google.api.services.sheets.v4.sheets实例

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

编辑:

我也读过这篇文章,但它对我没有帮助,因为我不使用谷歌登录。 以下是我的身份验证过程的一个片段:

// 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()
                        )
                );
            }
        }
    }

//创建登录意图
//主要活动
startActivityForResult(
viewModel.GenerateAuthenticationContent(),
RC_登录);
//在viewModel中:
公共意图生成验证内容(){
列表提供程序=Arrays.asList(
新建AuthUI.IdpConfig.EmailBuilder().build(),
新的AuthUI.IdpConfig.GoogleBuilder().build());
返回AuthUI.getInstance()
.CreateSignInEntBuilder()
.setAvailableProviders(提供程序)
.setIsSmartLockEnabled(错误)
.build();
}
//主要活动:
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==RC\u登录){
IdResponse-response=IdResponse.fromResultIntent(数据);
if(resultCode==RESULT\u OK){
//已成功登录
authenticate();
createHome();
}否则{
对数d(
标签,
字符串格式(
%s\n+
“response.getError().getErrorCode()=%d\n”+
“response.getError().getMessage()=%s”
,
response.getError().getErrorCode(),
response.getError().getMessage()
)
);
}
}
}

任何帮助都将不胜感激。

这个问题是荒谬的,因为使用谷歌作为身份验证提供商并不意味着用户实际登录谷歌。这将不起作用,你需要登录到谷歌帐户才能访问任何东西