Firebase swift无法检索所有子值

Firebase swift无法检索所有子值,第1张

概述我在 Swift构建的iOS应用程序中有一段代码,用于从Firebase实时数据库中检索所有节点.当我执行下面的代码时,我注意到它没有返回所有子节点. 当我查询未单独返回的特定节点时,首先代码返回’nil’,然后在第二次尝试时检索节点. (在此过程中不做任何代码更改).在此过程之后,节点开始显示结果,并检索所有节点功能. 示例1:首先返回nil,然后在第二次尝试时返回节点.我可以从控制台看到,并且 我在 Swift构建的iOS应用程序中有一段代码,用于从Firebase实时数据库中检索所有节点.当我执行下面的代码时,我注意到它没有返回所有子节点.

当我查询未单独返回的特定节点时,首先代码返回’nil’,然后在第二次尝试时检索节点. (在此过程中不做任何代码更改).在此过程之后,节点开始显示结果,并检索所有节点功能.

示例1:首先返回nil,然后在第二次尝试时返回节点.我可以从控制台看到,并且肯定存在于数据库中.

ref?.child("transactions").child(email).child("14526452327").observeSingleEvent(of: .value,with: { (snapshot) in                // Get user value                let value = snapshot.value as? NSDictionary                        print(value)                        print("!!****************!!")                // ...            }) { (error) in                print(error.localizedDescription)            }

以下内容用于检索所有子值;首先,这并没有获得所有节点,但是在运行示例1中的代码(两次)后,它开始返回有问题的节点.

ref?.child("transactions").child(email).observeSingleEvent(of: .value,with: { (snapshot) in        let childrenCount = snapshot.childrenCount        var counter : Int = 0        for trans in snapshot.children.allObjects as! [DataSnapshot]        {            counter = counter + 1            self.ref?.child("transactions").child(email).child(trans.key).observeSingleEvent(of: .value,with: { (snapshot2) in

我还检查了我的Firebase查询和数据限制,我远远没有达到免费帐户的门槛.任何帮助是极大的赞赏.

解决方法 试试这个:

func getData() {    // Making a reference    let transactionRef = Database.database().reference(withPath: "transactions")    transactionRef.observeSingleEvent(of: .value,with: { (snapshot) in        // Printing the child count        print("There are \(snapshot.childrenCount) children found")            // Checking if the reference has some values        if snapshot.childrenCount > 0 {            // Go through every child            for data in snapshot.children.allObjects as! [DataSnapshot] {                if let data = data.value as? [String: Any] {                    // RetrIEve the data per child                    // Example                    let name = data["name"] as? String                    let age = data["age"] as? Int                    // Print the values for each child or do whatever you want                    print("name: \(name)\nAge: \(age)")                }            }        }    })}
总结

以上是内存溢出为你收集整理的Firebase swift无法检索所有子值全部内容,希望文章能够帮你解决Firebase swift无法检索所有子值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1015474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存