Firebase iOS - 从其他视图控制器访问用户对象

Posted

技术标签:

【中文标题】Firebase iOS - 从其他视图控制器访问用户对象【英文标题】:Firebase iOS - access user object from other view controller 【发布时间】:2017-09-30 17:01:54 【问题描述】:

我有两个视图控制器,一个是用户自己注册(电子邮件、密码)到应用程序的地方,另一个是他可以选择用户名的地方,我设法让第一个视图控制器与 Firebase 一起工作,这意味着我的用户已通过身份验证,我设法将他的电子邮件地址输入实时数据库,但我在将他选择的用户名更新到数据库时遇到问题,我试过这个:

self.ref.child("Users").child(user.uid).setValue(["username": usernameTextfield.text])

我认为这不起作用,因为我的视图控制器不知道对象用户。有人可以告诉我该怎么做。谢谢

【问题讨论】:

【参考方案1】:

如果您在第一个视图控制器的上下文中创建了一个 user 对象,那么您是对的,您将无法从第二个视图控制器访问它。

但是,您可以通过调用 Auth.auth().currentUser 在第二个视图控制器上重新创建此 user 对象,如下所示:

if let user = Auth.auth().currentUser 
    // use the user object here
    self.ref.child("Users").child(user.uid).setValue(["username": usernameTextfield.text])
 else 
    print("no user is logged in")

【讨论】:

嗨布拉德利,我自己设法做到了,但这也是我找到的解决方案。谢谢

以上是关于Firebase iOS - 从其他视图控制器访问用户对象的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的 Firebase 参考

IOS 从另一个视图访问一个视图

将 Firebase 数据从一个视图控制器传递到详细视图控制器

无法从 Objective-C 视图控制器访问 Swift var - iOS

带有 Firebase 数据库的导航控制器和表格视图

Swift/xcode/iOS:使用 Firebase 检索已收集的数据并将其显示在单独的视图控制器中