根据特定值查询子节点(Swift 3,Firebase)

时间:2017-08-02 00:56:18

标签: ios firebase swift3 firebase-realtime-database

我正在尝试传递一个电话号码(例如,1111111111)并查看它是否与我的Firebase数据库中的任何条目匹配。我在排序数据库和查找电话号码时遇到问题。以下是Firebase数据库的JSON代码。

{
  "Users" : {
    "3SMHwMuA8HQm9yLoivxYoCtUccr1" : {
      "Email" : "firstname1.lastname1@gmail.com",
      "First Name" : "First Name 1",
      "Last Name" : "Last Name 1",
      "Phone Number" : "(111) 111-1111"
    },
    "NvQiGzASw2QDAMcBQLx1HNzR8ZM2" : {
      "Email" : "firstname2.lastname2@gmail.com",
      "First Name" : "First Name 2",
      "Last Name" : "First Name 2",
      "Phone Number" : "(222) 222-2222"
     },
    "RuVMfHUC8qQg8KGVJitEkzq9Tsy2" : {
      "Email" : "firstname3.lastname3@gmail.com",
      "First Name" : "First Name 3",
      "Last Name" : "Last Name 3",
      "Phone Number" : "(333) 333-3333"
    }
  }
}

这是我写的代码。它没有给出正确的结果。

phoneNumber: Int = 1111111111
ref = Database.database().reference()
let phoneNoInDatabase = ref.child("Users").queryEqual(toValue: phoneNo_pb_int)
let phoneNoInDatabaseInt = Int(phoneNoInDatabase.components(separatedBy: CharacterSet.decimalDigits.inverted).joined())
if phoneNoInDatabase_int == phoneNo_pb_int {
    // Success!
    print("User Found")
}
else {
    // Error!
    print("User not Found")
}

1 个答案:

答案 0 :(得分:0)

您错过了有关过滤孩子的说明:

let phoneNoInDatabase = ref.child("Users").queryOrdered(byChild: "Phone Number").queryEqual(toValue: phoneNo_pb_int)