swift firebase查询不起作用

时间:2018-03-14 00:08:08

标签: swift firebase firebase-realtime-database

我试图从swift中查询firebase实时数据库。

但以下代码无效。

var keyvalue = "somevalue"

Database.database().reference().child("users")
    .queryOrdered(byChild: "key1").queryEqual(toValue: keyvalue.lowercased())
    .observe(.value, with: {(snapshot)  in
        if snapshot.exists() {
            // do some action  
            // block1
        } else {
           // do some action if not exist 
           // block2
        }
    })

我将断点改为" block1"," block2"。 但代码未达到block1或block2。 我的代码出了什么问题?

Firebase数据库结构如下所示。

{
  // some nodes..
  "users": {
    "auto_key1": {
      "key1": "key1val",
      "key2": "key2val"
    },
    "auto_key2": {
      "key1": "key1val",
      "key2": "key2val"
    }
    ....
  }
}

我认为这足以解释结构。

2 个答案:

答案 0 :(得分:1)

我在iPhone 7(iOS 11.3)中遇到了同样的问题。

但是当我在模拟器或其他iPhone中测试相同的代码时,一切都很好。

我也不知道为什么代码无法在特定手机中进行回调,但这不是您的代码问题。

答案 1 :(得分:0)

除非孩子的值等于“somevalue”,否则它不会返回子快照。根据您的数据库判断,这是不可能的,因为您的所有“key1”键都具有“key1val”的值。