Firebase 不返回数据

Posted

技术标签:

【中文标题】Firebase 不返回数据【英文标题】:Firebase not returning data 【发布时间】:2021-12-13 07:36:53 【问题描述】:

我有以下用于从 Firebase 实时数据库检索数据的快速代码:

    private let db = Database.database().reference(withPath: "food")

    func fetchFoods() 
        db.getData(completion:  error, snapshot in
            guard error == nil else 
                print("ERROR")
                print(error!.localizedDescription)
                return
            
            print(snapshot.value as? String ?? "Unknown")
            // Food data is stored as a map of UUIDs to Food objects
            guard let foodDicts = snapshot.value as? [String: Any] else 
                print("ERROR: type cast failed")
                return
            
        )
    

但是我有一个奇怪的问题,如果我的数据是这样存储的:


  "food": [
      "id": "8466A419-AE6E-4997-BE74-220B59C95F96",
      "cholestrol": 0,
      "macroProfile": 
        "carbProfile": 
          "sugar": 0,
          "fiber": 0
        ,
      ...
  ]


检索数据没有问题。但是,如果数据是这样存储的:


  "food": 
      "8466A419-AE6E-4997-BE74-220B59C95F96": 
        "cholestrol": 0,
        "macroProfile": 
          "carbProfile": 
            "sugar": 0,
            "fiber": 0
          ,
        ...
      
   

我得到:

Unable to get latest value for query FQuerySpec (path: /, params: 
), client offline with no active listeners and no matching disk cache entries

【问题讨论】:

将您的数据集树显示为图像。 【参考方案1】:

我通过编辑 database.rules.json 并将读写规则设置为 true 来解决此问题。


  "rules": 
    ".read": true,
    ".write": true
  

您可能会问,为什么其他数据格式有效?因为它是从以前缓存的!在我的规则文件被更改的过程中的某个地方。

【讨论】:

以上是关于Firebase 不返回数据的主要内容,如果未能解决你的问题,请参考以下文章

从 vuejs 请求时,Firebase 不返回数据

Android Firebase 远程配置初始获取不返回值

反应本机 firebase 实时数据库参考返回 null

firebase 数据库和存储为图像返回 null

Swift不检索Firebase值(返回值为NSNull)

Firebase 查询未从数据库返回任何结果