Java firebase身份验证后访问用户google表单
我有一个android应用程序,通过Firebase平台管理用户(preforms使用google帐户登录)。 成功登录后,我有一个FirebaseAuth实例,从中我可以访问FirebaseUser实例 现在我想访问登录的用户Google Sheets并对其进行操作(读、写、创建一个新的)。我该怎么做 伪代码: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
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()
)
);
}
}
}
任何帮助都将不胜感激。这个问题是荒谬的,因为使用谷歌作为身份验证提供商并不意味着用户实际登录谷歌。这将不起作用,你需要登录到谷歌帐户才能访问任何东西