0
我试图传递一个电话号码(例如1111111111),并查看它是否与我的Firebase数据库中的任何条目匹配。我在整理数据库并查找电话号码时遇到问题。以下是Firebase数据库的JSON代码。基于特定值查询子节点(Swift 3,Firebase)
{
"Users" : {
"3SMHwMuA8HQm9yLoivxYoCtUccr1" : {
"Email" : "[email protected]",
"First Name" : "First Name 1",
"Last Name" : "Last Name 1",
"Phone Number" : "(111) 111-1111"
},
"NvQiGzASw2QDAMcBQLx1HNzR8ZM2" : {
"Email" : "[email protected]",
"First Name" : "First Name 2",
"Last Name" : "First Name 2",
"Phone Number" : "(222) 222-2222"
},
"RuVMfHUC8qQg8KGVJitEkzq9Tsy2" : {
"Email" : "[email protected]",
"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")
}
恐怕您的解决方案没有奏效。我添加了你的代码,行为仍然是一样的。感谢你的付出。 –
您似乎将电话号码保留为代码中的数字。在数据库中,您将其存储为字符串。所以你需要将它转换为一个字符串:'queryEqual(toValue:“1111111111”)' –
这似乎并不是这种情况,因为它总是匹配一个数字 - (333)333-3333当它从电话联系人列表。这个数字找到一个匹配。而其他两个数字则不然。即使他们在数据库中。 –