【问题标题】:Swift & Firebase - How to store more user data other than email and password?Swift & Firebase - 如何存储除电子邮件和密码以外的更多用户数据?
【发布时间】:2016-06-20 16:11:56
【问题描述】:

我对 Firebase 比较陌生,正在尝试开发一款要求用户在注册页面中提供姓名和姓氏的应用。但firebase createUserWithEmail 方法只存储电子邮件和密码。如何将此姓名和姓氏数据添加到我的应用程序并将它们与用户链接?我想我需要使用 FIRStorage,但这样,保存信息的唯一选项是从 NSData 或 NSURL 保存,如何保存我的姓名和姓氏字符串?

提前致谢!

Edit1:我想我错了,我需要使用实时数据库而不是存储来保存用户数据。但我仍然需要帮助。我来自 Parse,这似乎很复杂。

【问题讨论】:

  • 使用 FIRDstabase,然后对于用户 x 有一个值为 Bob 的名称键。
  • 您通常会将其他用户数据存储在 /users 节点中。这些是旧文档,但它们比新文档解释得更好。 User Authentication

标签: swift firebase


【解决方案1】:

是的,您需要使用实时数据库来存储您的用户数据。所以创建后你可以调用setValue()

FIRAuth.auth()!.createUserWithEmail(email, password: pwd, completion: { authData, error  in
    if error == nil {    
        let userData = ["name": name,
                        "surname ": surname]
        let ref = FIRDatabase.database().reference()
        ref.child('users').child(authData!.uid).setValue(userData)
    } else {
        // handle error
    }
})

【讨论】:

  • 注意这一点:创建新用户也会对他们进行身份验证。创建新用户的用户也未经过身份验证。这意味着如果您计划让一个用户可以创建其他用户,那么在 Firebase 修复它之前,它不会在 v3.x 中发生。
  • @Jay 你是对的。我对此不好,刚刚编辑。感谢您指出。
  • 感谢您的回复 :) 我对这个 'ref' 变量还有一个问题。我如何创建这个变量以及我应该在哪里创建它。我查阅了文档,但遗憾的是,没有太多关于它的好信息。
  • @AtakanCavuslu 很抱歉没有添加它。刚刚用正确的信息编辑了代码。
  • 非常感谢您的快速回复,但是当我添加 'setValue(userData)' 时出现错误:无法将值类型 [string:string] 转换为 'AnyObject?'。我该怎么办?
猜你喜欢
  • 2016-06-27
  • 2018-01-09
  • 2018-07-24
  • 2018-01-18
  • 2021-08-18
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多