如何 link 匿名用户到 Firebase 云函数中的 phone 号码?
How to link an anonymous user to a phone number in a Firebase Cloud Function?
我正在尝试构建类似于 Whatsapp 和 Whatsapp Web 的身份验证机制,在移动设备上使用 Android,在网络上使用 Angular,希望是 Firebase。
我设法在移动设备上使用 phone 号码登录,并在网络上匿名登录。然后,在网络上,我为用户 ID 生成了一个二维码,并使用移动设备对其进行了扫描。问题是我无法找到一种方法来 link 从 Web 到移动设备上的会话的匿名会话。
我尝试将 credentials/token/uid 连同扫描的代码一起上传到 Firebase 数据库,并使用 Firebase 云功能 link 用户,但似乎 Firebase 云功能无法 link将两者合并。
有没有办法仅使用 Firebase 作为 'back-end' 来实现此目的?
我是怎么做到的:
- 我使用移动设备扫描二维码并对其进行解码以获取匿名用户 ID -
让我们称之为 webUID.
- 在移动设备上,我使用 webUID 作为参数调用了 Firebase Cloud 函数。
- 在 Firebase Cloud Function 中,我从调用者的 uid(移动设备的 uid)生成了一个自定义令牌并将其保存在 /users/webUID。这很重要,因为这是网络上匿名用户可以读取的唯一路径(Firebase 数据库规则)。
- 在网络上,我从 /users/webUID 获得了自定义令牌,将其从数据库中删除,使用 signInWithCustomToken 和提供的自定义令牌注销并登录。
最后,两台设备都使用正确的凭据登录,令牌已从数据库中删除。
我正在尝试构建类似于 Whatsapp 和 Whatsapp Web 的身份验证机制,在移动设备上使用 Android,在网络上使用 Angular,希望是 Firebase。
我设法在移动设备上使用 phone 号码登录,并在网络上匿名登录。然后,在网络上,我为用户 ID 生成了一个二维码,并使用移动设备对其进行了扫描。问题是我无法找到一种方法来 link 从 Web 到移动设备上的会话的匿名会话。
我尝试将 credentials/token/uid 连同扫描的代码一起上传到 Firebase 数据库,并使用 Firebase 云功能 link 用户,但似乎 Firebase 云功能无法 link将两者合并。
有没有办法仅使用 Firebase 作为 'back-end' 来实现此目的?
我是怎么做到的:
- 我使用移动设备扫描二维码并对其进行解码以获取匿名用户 ID - 让我们称之为 webUID.
- 在移动设备上,我使用 webUID 作为参数调用了 Firebase Cloud 函数。
- 在 Firebase Cloud Function 中,我从调用者的 uid(移动设备的 uid)生成了一个自定义令牌并将其保存在 /users/webUID。这很重要,因为这是网络上匿名用户可以读取的唯一路径(Firebase 数据库规则)。
- 在网络上,我从 /users/webUID 获得了自定义令牌,将其从数据库中删除,使用 signInWithCustomToken 和提供的自定义令牌注销并登录。
最后,两台设备都使用正确的凭据登录,令牌已从数据库中删除。