检查firebase数据中是否存在字符串

时间:2017-04-30 19:55:03

标签: ios swift firebase firebase-realtime-database

我想检查在我的数据库中是否有与文本字段中写的字符串相同的字符串。我试过这个:

}

但是这给了我错误,因为很明显字符串和FIRDataSnapshot是不同的东西。我怎么能解决这个问题?

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

将项目转换为FIRDataSnapshot并获取值。

let s = textField?.text!.lowercased()

DataService.ds.MSGS_DB_REF_KEY1.queryOrdered(byChild: "livelli").observe(.value, with: { snapshot in
    for item in snapshot.children{
        let itemSnap = item as! FIRDataSnapshot
        for child in itemSnap.children {
            childSnap = child as! FIRDataSnapshot
            if let firebaseVal = childSnap.childSnapshot(forPath: "text").value as? String {
                if s?.contains(firebaseVal.lowercased()){

                }
            }
        }
    }

})

答案 1 :(得分:2)

您需要从FIRDataSnapshot中获取值:

for item in snapshot.children{
    if let itemValue = (item as? FIRDataSnapshot).value as? String, let s = s, s.contains(itemValue){

    }
}

此外,如果您不需要,请不要强行打开包装。安全地打开它们,以便在将来发生变化时不会有崩溃的风险。