swift - 从自动 ID 数据库子项中检索数据

标签 swift firebase firebase-realtime-database firebase-authentication swift4

我对快速编程有点陌生,我的情况是:

我在 firebase 上有一个实时数据库“见图片”,我只想检索特定 ID 的 firstNamelastName 数据。

enter image description here

例如: 当我在登录屏幕并使用此电子邮件登录时:“ali_y_k@hotmail.com”,当我转到下一个屏幕时,我想显示 firstNamelastName 这个email 在图片上显示的文本字段中

Log in Screen

HOme Screen

我尝试了几种解决方案,但问题始终是我无法输入随机 ID 子项来获取 firstNamelastName

这是我尝试过的: 第一

函数检索信息(){

let databaseRef = Database.database().reference().child("User_Informations")

databaseRef.observe(.childAdded) { (snapshot) in

    let snapshotValue = snapshot.value as! Dictionary<String,String>

    let firstName = snapshotValue["firstName"]!
    let lastName = snapshotValue["lastName"]!
    let email = snapshotValue["email"]!

    print(firstName,lastName,email)

  }
}

这是从每个 id 打印所有数据(firstNamelastNameemail)


第二

func retriveInfo() {

    let databaseRef = Database.database().reference().child("User_Informations")


        databaseRef.observeSingleEvent(of: .value, with: { (snapshot) in

            for snap in snapshot.children {
                let userSnap = snap as! DataSnapshot
                let uid = userSnap.key //the uid of each user
                let userDict = userSnap.value as! [String:AnyObject] //child data
                let firstName = userDict["firstName"] as! String
                let lastName = userDict["lastName"] as! String

                print("key = \(uid) First Name = \(firstName), Last Name = \(lastName)")
            }
        })

这将打印每个 key “Id”和所有信息

提前谢谢你:)

最佳答案

因为您有 childByAutoId,所以您必须使用有序查询和相等查询。

let reference = Database.database().reference().child("User_Informations").queryOrdered(byChild: "email")
reference.queryEqual(toValue: "ali_y_k@hotmail.com").observeSingleEvent(of: .childAdded) { (snapshot) in
     let dictionary = snapshot.value as! [String : Any]
     let firstName = dictionary["firstName"]
     print(firstName)
}

关于swift - 从自动 ID 数据库子项中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54656259/

相关文章:

node.js - 从node.js中的firebase数据库中批量删除项目

firebase - 'FIRDatabaseReference' 的值类型没有成员 'observeSingleEvent'

ios - Firebase 嵌套规则

ios - 按下按钮时更改图像,然后在 5 秒后让图像返回原始图像

android - 如何从 FCM token 获取 Firebase 用户 ID? (在服务器上的管理员代码中)

ios - 如何在快速打开侧边菜单时添加透明背景?

javascript - 错误 : Paths must be non-empty strings and can't contain ".", "#"、 "$"、 "["或 "]"(ionic 2 和 firebase)

Firebase 只读,无需应用程序身份验证

swift - 如何在 swift 中停止 dispatchQueue

ios - Swift/ios/Google map - 添加 UISlider 时出现 "Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value"