使用Firebase AuthUI时如何登录Android上的Google API?

问题描述 投票:0回答:1

因此,我已经实现了Firebase Auth&AuthUI,并成功使用Google身份验证提供程序登录了用户。但是,现在我正在尝试访问Google API,但是在尝试访问它们时出现登录错误。下面的代码正在尝试连接到Google Fit。

val account = GoogleSignIn.getAccountForExtension(requireContext(), fitnessOptions)
        Fitness.getHistoryClient(requireContext(), account)
                .readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
                .addOnSuccessListener { r ->
                    val first = r.dataPoints.first()
                    ...
                }
                .addOnFailureListener { e ->
                    ...
                }

此时我收到以下错误消息:

com.google.android.gms.common.api.ApiException: 4: The user must be signed in to make this API call.

我已经调试了Firebase身份验证程序,可以看到当前FirebaseUser上有两个提供程序,一个Google和一个Firebase,看起来像不是在通过Google验证我的应用,Firebase在验证自己,然后在验证我的应用使用Firebase。

我很确定我可以删除AuthUI并手动执行Google SSO实施(根据Google的文档),但是我确实不想这样做,因为我计划启用几乎所有的Auth提供程序'不必手动将它们全部编码(更不用说完成所有布局了)

因此,如果有人知道如何通过Firebase身份验证的用户访问Google API /在Google帐户中登录,我很乐意听到!

感谢您提供的任何帮助!

android google-api firebase-authentication google-authentication
1个回答
0
投票

好吧,我知道了。 Firebase不会将任何默认范围传递给Google登录提供程序。通过执行]来解决它

...
AuthUI.IdpConfig.GoogleBuilder()
    .setScopes(listOf(Scopes.FITNESS_ACTIVITY_READ)
...

要访问标准步骤,请阅读信息。您可以在here类中找到需要的Scopes范围并对其名称进行逆向工程。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.