我有一个Android应用程序,可以使用 GoogleAccountCredential 登录谷歌帐户,允许我进行通信,例如使用Google Spreadsheet API。 见https://developers.google.com/sheets/api/quickstart/android
现在我想添加与 Firebase数据库进行通信的功能,我想知道如果只使用一种登录方法,有什么方法可以做到这一点。见https://firebase.google.com/docs/auth/android/google-signin
哪一个更好?我需要两个吗?用户是否会两次看到“Google登录对话框”?我能以某种方式将某些auth-object重用于其他方法吗?
答案 0 :(得分:0)
这是一篇旧文章,但是我有一些应用可以做到这一点;专门登录到Firebase,然后设置凭据以使用api创建并写入google工作表。此代码假定您已在android项目和开发人员控制台上正确设置了oauth。您也可以在那里为工作表启用api。
完成后,从firebase控制台获取google-services.json并将其放置在您的android项目中。
private static final String[] SCOPES =
{SheetsScopes.SPREADSHEETS, SheetsScopes.DRIVE_FILE};
// used for spreadsheet access only
mCredential = GoogleAccountCredential.usingOAuth2(
getApplicationContext(),Arrays.asList(SCOPES));
// set exponential backoff policy
mCredential.setBackOff(new ExponentialBackOff());
setCredentailAccount();
private void setCredentailAccount() {
if (mFirebaseUser != null) {
mCredential.setSelectedAccount(
new
Account(mFirebaseUser.getEmail(),getPackageName()));
Log.i(TAG, "getAcctPermission - account set");
} else {
Log.i(TAG, "getAcctPermission - account not set");
}
}
我还实现了一个单独的登录活动,该活动封装了该应用程序的登录信息。 Firebase登录有很多代码示例。 Google凭据是传递到任务中以执行电子表格工作的东西。另外,Api控制台上的oauth屏幕还包含需要添加的工作表的凭据。