我有一个通过 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/