ノードにキー/値(TestKey/TestValue)が存在するかどうかを確認しようとしていますが、Aを実行していない場合はBを返します。Firebaseのスナップショットで制御フローでNilを使用するにはどうすればいいですか? (スウィフト)
この類似のスレッドこれについてStackOverflowについては、私のために動作するように思われた解決策はありませんでした。Checking if Firebase snapshot is equal to nil in Swift
私は既にTestKey/TestValueキーペアが挿入されたデータベースをセットアップしました。印刷テストは結果がnilであることを示している場合でも、
var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()
ref.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
//A print test to see stored value before control flow
print(snapshot.value!["TestKey"]) //returns TestValue
print(snapshot.value!["NilKey"]) //returns nil
// I change the value from TestKey <-> NilKey here to test the control flow
if snapshot.value!["TestKey"] != nil {
print("Exists currently")
} else {
print("Does not exist currently")
}
}) { (error) in
print(error.localizedDescription)
}
問題は、「A」が実行されていることである: はここに私のコードです。
私は== nilで操作を逆転しようとしましたが、 "is NSNull"も試みました。
コントロールフローが正常に動作しないようです。たぶん、次のいずれかが犯人であるが、私はわからないよ:オブザーバー(?私もobserveSingleEventTypeのために必要なのです)
- 相互作用非同期呼び出し
- とそのfirebase店舗NSAnyObjects