【问题标题】:geting list of users from firebase database swift 5从firebase数据库swift 5获取用户列表
【发布时间】:2020-05-06 21:49:26
【问题描述】:

我想从 firebase 获取用户列表,我正在学习一个不使用 swift 5 但我正在使用 swift 5 编写代码的教程。我对 swift 和 iOS 开发非常陌生 如何将以下代码转换为 swift 5

我在 firebase 数据库中有一个用户 ~ 我正在尝试检索,每个用户都有 emailname

用户

class User: NSObject {
    var name: String?
    var email: String?
}

试图将波纹管代码转换为 swift 5

FIRDatabase.database().reference().child(“users”).observeEventType(.ChildAdded, withBlock: { (snapshot) in
   If let dictionary = snapshot.value as? [String: AnyObject] {

   }
}, withCancelBlock: nil)

这就是我所做的,我认为我没有得到正确的数据

func fetchUsers() {

        Database.database().reference().child("users").observe(.childAdded) { (snapshot) in

            if let dictionary  = snapshot.value as? [String: AnyObject] {
                let user = User()
                user.setValuesForKeys(dictionary) // this is where my error is

            }
        }
    }

错误

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<FBCHSRM.User 0x600002701050> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key email.'

字典中的数据是这样的

提前致谢 回复

【问题讨论】:

    标签: ios swift firebase-realtime-database swift5


    【解决方案1】:

    你错误地设置了值,你应该改变一些东西。首先添加您的用户结构

    init(email: String, username: String) {
            self.email= email
            self.name = name
    
        }
    

    然后创建一个用户数组来存储数据:

    var users:[User] = []
    

    在 fetchUser 函数中

     if let dictionary  = snapshot.value as? [String: AnyObject] {
            for dic in dictionary{
                let emailFromFB = dic["email"] as? String ?? "" 
                let username = dic["username"] as? String ?? "" /
                var u: User(email: email, name:name)
                users.append(u)
    
            }
        }
    
        print(users)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多