我有一个 Android 应用程序,可以使用 GoogleAccountCredential 使用谷歌帐户登录,允许我进行通信,例如与谷歌电子表格 API。 见https://developers.google.com/sheets/api/quickstart/android
现在我想添加与 Firebase 数据库 通信的功能,我想知道是否有任何方法可以仅通过一种登录方法来实现。见https://firebase.google.com/docs/auth/android/google-signin
哪个更好?我需要两者吗?用户是否两次看到“谷歌登录对话框”?我能以某种方式将一些 auth-objects 重用到其他方法吗?
最佳答案
这是一篇旧文章,但我有一些应用可以做到这一点;专门登录到 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");
}
}
我还实现了一个单独的登录 Activity ,它封装了应用程序的登录。有很多用于 firebase 登录的代码示例。 Google 凭据是传递到任务中以执行电子表格内容的内容。此外,Api 控制台上的 oauth 屏幕具有需要添加的工作表的凭据。
关于android - Firebase 身份验证与 GoogleAccountCredetial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878337/