如何在Firebase Cloud Function中将匿名用户链接到电话号码?

时间:2019-04-07 02:29:33

标签: android firebase firebase-authentication firebase-admin

我正在尝试使用移动设备上的Android,Web上的Angular和希望的Firebase构建类似于Whatsapp和Whatsapp Web的身份验证机制。

我设法在移动设备上使用电话号码登录,并在网络上匿名登录。然后,在网络上,我为用户ID生成了QR码,并使用移动设备对其进行了扫描。问题是我找不到将匿名会话从网络链接到移动设备上的会话的方法。

我尝试将凭据/令牌/ uid以及扫描的代码上传到Firebase数据库,并使用Firebase云功能链接用户,但是Firebase云功能似乎无法链接两者。

是否有一种方法可以仅使用Firebase作为“后端”?

1 个答案:

答案 0 :(得分:0)

我如何做到这一点:

  1. 我使用移动设备扫描了QR码,并将其解码以获取匿名用户ID- 让我们称之为 webUID
  2. 在移动设备上,我使用webUID作为参数调用了Firebase Cloud函数。
  3. 在Firebase Cloud Function中,我从调用者的uid(移动设备的uid)生成了自定义令牌,并将其保存在/ users / webUID 。这很重要,因为这是Web上匿名用户可以读取的唯一路径(Firebase数据库规则)。
  4. 在网络上,我从/ users / webUID获取了自定义令牌,将其从数据库中删除,使用 signInWithCustomToken 和提供的自定义令牌进行了登录和登录。

最后,两个设备都使用正确的凭据登录,并且令牌已从数据库中删除。