首页 > 解决方案 > 如何为 Firebase 身份验证用户设置自定义用户 UID?

问题描述

我想将自定义 ID 存储为 Firebase 身份验证中的用户 UID。你能做到吗?根据我的搜索,我似乎需要使用 Firebase 实时数据库来存储这个额外的 ID,但我想避免使用其他产品,并且只在 Firebase 身份验证中拥有所有内容(我只需要将这个第 3 方 ID 存储在某处)。

在此处输入图像描述

我的用例如下:

  1. 用户使用电子邮件/密码或 Google 登录(使用 Firebase 身份验证)注册

    mAuth.createUserWithEmailAndPassword(email, password) mAuth.signInWithCredential(credential) // 或 Google 登录,如果不存在则创建一个新帐户

  2. 用户输入电话号码并进行验证(使用 Firebase 身份验证)

  3. 如果一切顺利,用户会自动注册到我们的第 3 方合作伙伴的后端服务器,该服务器会发回用户的 UID(他们生成它,我必须存储它)。它看起来像77a644e1-9322-4291-854e-5dabb59cc296b

  4. 我想将此生成的用户 ID 存储到 Firebase 身份验证用户。

标签: androidfirebasefirebase-authentication

解决方案


Firebase 身份验证并非旨在存储一般的每个用户信息。数据库在这方面做得更好。

存储每个用户的任意数据的唯一方法是自定义声明的形式。自定义声明主要用于存储要在安全规则中使用的少量数据,以便通过安全规则授权访问实时数据库、Firestore 和云存储中的数据。但是如果你真的想在自定义声明中存储这个额外的字符串,你可以。但我会改用数据库。


推荐阅读