如何从Firebase数据库上传用户名

问题描述 投票:1回答:1

enter image description here enter image description here我的用户使用自定义用户名注册,但在Firebase数据库中,它显示为用户UID链接。如何解决此代码,以将用户名从链接更改为用户在Firebase数据库中注册的自定义用户名?

if let AuthData = AuthDataResult {
    print(AuthData.user.email)
    var dict : Dictionary < String, Any> = [
        "uid": AuthData.user.uid,
        "email": AuthData.user.email,
        "ProfileImageUrl": "",
    ]
    Database.database().reference()
            .child("users")
            .child(AuthData.user.uid)
            .updateChildValues(dict, withCompletionBlock: {
               (error,ref) in
               if error == nil {
                   print("Done")
ios swift firebase firebase-realtime-database user-input
1个回答
0
投票

在屏幕截图中,您的数据库对象似乎没有一个名为“用户名”的属性。这很有意义,因为快捷代码中的dict不包含“用户名”键。与预期的一样,“ uid”键的值是用户的UUID。

为什么不将键username添加到快速代码中的dict值。然后将username的值设置为用于收集用户选择的用户名的UITextField的值吗?它看起来像这样:

if let AuthData = AuthDataResult {
    print(AuthData.user.email)
    var dict : Dictionary < String, Any> = [
        "uid": AuthData.user.uid,
        "email": AuthData.user.email,
        "ProfileImageUrl": "",
        //The following line is added to your original code
        "username": usernameTextField.text!
    ]
    Database.database().reference()
            .child("users")
            .child(AuthData.user.uid)
            .updateChildValues(dict, withCompletionBlock: {
               (error,ref) in
               if error == nil {
                   print("Done")

但是,如果您提供原因,那么有人可以给您一个更自信的答案。您希望用户的用户名在Firebase的末尾填充。此外,提供一些有关如何收集用户的用户名,电子邮件和密码(即,是否使用UITextField收集用户名和电子邮件)的上下文。如果是这样,请让我们知道所说的UITextField的名称。

注意:您可能希望引用数据库以确保尚未使用用户请求的用户名。

© www.soinside.com 2019 - 2024. All rights reserved.