8
我无法成功地给做,我也跟着的指示在火力地堡文档以下步骤:如何将多个身份验证提供程序链接到Firebase帐户?
- 使用现有的身份验证提供者签名的使用(我的情况:Facebook的)。
- 完成新身份验证提供高达登录流程,但不包括调用的
Auth.signInWith
方法之一(我的情况:我要链接的电子邮件&密码和谷歌的OAuth)。所以这是我不清楚的一步,我使用var provider = new firebase.auth.GoogleAuthProvider();
创建了一个新的提供商,我没有做Firebase.auth().signInWithPopup(provider)
。 - 然后让authcredential为谷歌我跑
var credential = firebase.auth.GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
(我得到一个未定义的googleUser错误)这个错误似乎是恰当的,因为我还没有签约使用谷歌的Oauth但那是第二步骤陈述了(不签到) - 然后这条命令与Facebook提供商的当前用户链接
auth.currentUser.link(credential)
我的理解是当前用户需要链接到我现有的提供者(Facebook)。似乎从未计算出Google的凭证变量。任何具有功能性代码示例的人都会很有帮助。
你提到的手动,有没有一个不同的更自动的方式来链接提供商? – jasan
不完全。我想我没有解释得很好。我的意思是手动,因为开发人员会根据一些需求(需要谷歌提供商访问谷歌日历,升级匿名用户等)选择链接。另一种情况是后端服务器出于安全原因需要它。例如,您使用google返回[email protected],登录到firebase。用户然后使用Facebook返回相同的电子邮件[email protected]在单独的设备上登录。在这种情况下,会出现证书已被使用的错误。在这种情况下,您需要链接帐户才能链接两个提供商。 – bojeil
@bojeil我看到你使用了'linkWithPopup()'。然后,[Firebase教程]中提到的linkWithCredential()是什么(https://firebase.google.com/docs/auth/android/account-linking#link-auth-provider-credentials-to-a-user -帐户)? –