Firebase 在每个视图中修改 uid
Posted
技术标签:
【中文标题】Firebase 在每个视图中修改 uid【英文标题】:Firebase modifying uid in every view 【发布时间】:2017-10-19 19:26:46 【问题描述】:我是 swift 新手,我正在尝试使用多个视图制作注册表单。问题是在调用 Auth.auth().currentUser?.uid 我在每个视图中得到一个不同的字符串,无法继续在一个特定的 UID 上工作。我做错了什么?
我正在使用 firebase 函数 createUser 创建用户:
Auth.auth().createUser(withEmail: emailField.text!, password:
passField.text!, completion: (user, error) in
if let error = error
print(error)
if let user = user
let userInfo: [String : Any] = ["uid": UserModel().getUID(),
"username": self.usernameField.text!, "avatar_icon" : ""]
self.ref.child("users").child(user.uid).setValue(userInfo)
)
我尝试创建一个包含该特定字符串的模型类,但得到了同样糟糕的结果。
import Foundation
import Firebase
class UserModel
var userID : String
init()
self.userID = (Auth.auth().currentUser?.uid)!
func getUID() -> String
return self.userID
我的第一个注册视图控制器是Register1ViewController,我在这里调用UserModel.init(),以后用UserModel().getUID()获取uid视图控制器。
【问题讨论】:
欢迎来到 ***!请更新您的问题以包含注册视图的代码。包括重现问题所需的最少、完整的代码量。请参阅this 链接了解更多信息。 【参考方案1】:如您所知,在 firebase,每个经过身份验证的用户都只有一个“唯一”的 uID。因此,当您以用户身份登录时,您应该在查询时始终获得相同的 uID。从这里很难说这一点,因为您提供了这段代码的一小部分。您应该提供更多信息以获得答案。
编辑: 看起来您每次活动开始时都在调用 createuser 。这意味着您每次运行代码时都在创建另一个用户。还有
Auth.auth().currentUser?.uid
返回不同的 uID。您应该注册一次并在其他时间登录。您可以查看下面的教程。但是不要只看sn-ps,打开github代码。
https://www.appcoda.com/firebase-login-signup/
【讨论】:
我的整个代码与这个问题无关,在每个视图中只调用常见的:Auth.auth().currentUser?.uid 返回一个不同的字符串。我已经编辑了我的帖子并添加了 createUser 函数,就像我使用的那样。谢谢你的建议:)以上是关于Firebase 在每个视图中修改 uid的主要内容,如果未能解决你的问题,请参考以下文章
Swift:从 Firebase 检索数据并在表格视图中显示
Firebase 分析 - 如何在事件详细信息视图中查看所有用户属性
将数据从firebase加载到集合单元格内的tableview