Firebase 身份验证与 GoogleAccountCredetial

Posted

技术标签:

【中文标题】Firebase 身份验证与 GoogleAccountCredetial【英文标题】:Firebase auth vs. GoogleAccountCredetial 【发布时间】:2017-10-08 06:25:27 【问题描述】:

我有一个 android 应用程序,可以使用 GoogleAccountCredential 使用 google 帐户登录,该应用程序允许我进行交流,例如使用 Google 电子表格 API。 见https://developers.google.com/sheets/api/quickstart/android

现在我想添加与 Firebase 数据库 通信的功能,我想知道是否有任何方法可以通过一种登录方法来实现。见https://firebase.google.com/docs/auth/android/google-signin

哪个更好?我需要两者吗?用户是否看到两次“谷歌登录对话框”?我可以以某种方式将一些身份验证对象重用于其他方法吗?

【问题讨论】:

【参考方案1】:

这是一篇旧帖子,但我有一些应用程序可以做到这一点;专门登录到firebase,然后设置一个凭证以使用api创建和写入谷歌表。此代码假定您在 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 登录有很多代码示例。谷歌凭证是传递给任务以执行电子表格的东西。此外,Api 控制台上的 oauth 屏幕具有需要添加的工作表的凭据。

【讨论】:

以上是关于Firebase 身份验证与 GoogleAccountCredetial的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Google Play 游戏登录与 Firebase 身份验证结合使用

Firebase 权限被拒绝(读取和写入)与身份验证

Firebase 身份验证 UI - 登录与注册

将 Google 身份验证令牌与 Firebase 一起使用

为啥注册用户后 Firebase 实时数据库用户 ID 与 Firebase 身份验证 UID 不匹配?

SwiftUI - 与 Microsoft 的 Firebase 身份验证