Firebase:如何获取 User.uid?

Posted

技术标签:

【中文标题】Firebase:如何获取 User.uid?【英文标题】:Firebase: How to get User.uid? 【发布时间】:2017-11-07 13:41:48 【问题描述】:

我正在使用 Firebaseauth 来管理我的 ios 应用的用户和数据。用户可以登录,并且他们的用户信息正确存储在数据库中。 但是当我尝试让用户在不同的 viewController 中写入数据库时​​,使用这个字符串:

self.ref.child("users").child(user.uid).setValue(["username": username])

抛出的错误是

类型用户没有成员.uid

我想这是有道理的,因为我还没有创建变量。但是不知道怎么申报?

【问题讨论】:

您应该将信息传递给下一个视图控制器。 This 会有所帮助 【参考方案1】:

这是您获取用户 uid 的方式:

let userID = Auth.auth().currentUser!.uid

更新:由于这个答案得到了赞成,请确保您使用guards 防止您的应用崩溃:

guard let userID = Auth.auth().currentUser?.uid else  return 

【讨论】:

强制展开可能会使您的应用程序崩溃。查看 Victor 的回答,了解如何防止这种情况发生。【参考方案2】:

您可能需要使用保护,因为如果用户未登录,强制展开可能会破坏您的应用。

guard let userID = Auth.auth().currentUser?.uid else  return 

【讨论】:

【参考方案3】:

FIRAuth 实际上已重命名为 Auth。所以,根据最新的变化,它将是

let userID = Auth.auth().currentUser!.uid

编辑。

正如 cmets 中指出的,强制展开可能会使应用程序崩溃。

guard let userID = Auth.auth().currentUser?.uid else  return 

【讨论】:

强制展开可能会使您的应用程序崩溃。查看 Victor 的回答,了解如何防止这种情况发生。

以上是关于Firebase:如何获取 User.uid?的主要内容,如果未能解决你的问题,请参考以下文章

如何对firebase firestore中的节点求和?

如何使用颤振从firebase中检索电话号码

如何删除用户点击按钮? - Firebase - Vue.js

如何从 Cloud Firestore 中获取数据,其中 user.uid 等于 Flutter 中的文档 ID?

FirebaseAuth软件包升级后的uid在哪里?

Firebase安全规则,在不同位置具有读写功能