【问题标题】:Not receiving data from firebase?没有从 Firebase 接收数据?
【发布时间】:2017-08-16 21:11:55
【问题描述】:

我正在尝试从 Firebase 加载数据,过去我可以使用以下代码执行此操作,但是我添加了一个额外的孩子,因此以下代码现在不起作用。我迷路了。任何帮助将不胜感激。

图像是一个 UIImageView

let databaseRef = Database.database().reference()

        databaseRef.queryOrderedByKey().observe(.childAdded, with: {
            snapshot in

            let content2 = (snapshot.value as? NSDictionary)?["imageWebsite"] as? String ?? ""
            let content3 = (snapshot.value as? NSDictionary)?["infoWebsite"] as? String ?? ""

            self.imgURL = content2
            self.infoURL = content3

        })


        print(imgURL)
        image.setImageFromURl(stringImageUrl: imgURL)

【问题讨论】:

  • 当您在with 块中打印出您的快照时,您会得到什么?
  • 您是否在“应用程序传输安全设置”中“允许任意加载”?
  • 我确实已将所有安全传输设置设置为允许
  • 有趣,它正在提取正确的 url,我可能会尝试将 setImageFromURL func 放在 with 块内
  • 成功了!谢谢,我以为是孩子被错误引用或其他原因,但不是。

标签: firebase url swift3 firebase-realtime-database


【解决方案1】:

通过将setImageFromURL 函数放入数据库查询中,它会在完成查询之前执行代码,确保加载objects。

let databaseRef = Database.database().reference()

        databaseRef.queryOrderedByKey().observe(.childAdded, with: {
            snapshot in

            let content2 = (snapshot.value as? NSDictionary)?["imageWebsite4"] as? String ?? ""
            let content3 = (snapshot.value as? NSDictionary)?["infoWebsite4"] as? String ?? ""

            self.imgURL = content2
            self.infoURL = content3
            print(content2)

            print(self.imgURL)
            self.image.setImageFromURl(stringImageUrl: self.imgURL)


        })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多