我试图找出一种干净简单的方法来获取使用 Java SDK 时uid
调用的结果。createUser()
这在使用 Javascript SDK 时很容易做到(例如,这个问题/答案)。我还在Firebase iOS API 的上下文中看到了 Stackoverflow 上提出的问题,这显然不是那么容易。我的问题是如何使用 Firebase Java SDK 来做到这一点。具体来说,我的用例与 iOS 相关问题中的用例相同,即允许管理员用户创建用户帐户(电子邮件/密码身份验证),并以 uid 作为密钥将有关创建用户的其他信息存储在 Firebase 中。了解和使用 uid 作为密钥是必不可少的,因为它是安全规则的基础。
我已经看到了一些建议的解决方案,它们都涉及在创建新用户帐户后要执行的一些程序。这些是
无论哪种方式,我都有一个复杂的解决方案,其中包含多个异步回调来处理使用 Javascript API 时微不足道的问题。
因此,我有三个具体问题:
- 目前有比我上面列出的两种更好的方法吗?
- 如果我使用第二种方法并以新创建的用户身份登录,那是否会覆盖管理员令牌(即注销创建用户的管理员),这反过来意味着新的安全规则适用?
- 是否有任何期望 Android 和 Java SDK 将很快升级,以便
createUser()
API 与 Javascript 版本相同?
更新:深入挖掘并进行一些实验,我找到了问题的答案。事实证明,Firebase 提供的 API 文档已过时和/或不一致。
关于Q1:根据createUser() 的 Javadoc,唯一可用的回调处理程序是 Firebase.ResultHandler
. 但是根据变更日志、API 参考文档和有关创建用户帐户的文档,Firebase.ValueResultHandler
也可以使用 a。这提供了对 UID 的直接访问
关于 Q2:答案是肯定的。对新创建的用户帐户进行身份验证会导致替换auth
令牌。
关于 Q3:真正的问题应该是“Firebase 人员何时会更新 Javadoc?” 或者更好的问题是“为什么发布新版本的 SDK 时没有更新和准确的文档?”