私は自分のアプリにFirebaseをリンクしました。 DBからデータを読み込もうとすると、スナップショットにデータが存在します。しかし、子供が読むと、それはnilを返します。ここでスウィフト3:子供がいるときにFirebaseDBがnilを返す
コードです:
ログ:
辞書は辞書を印刷から来た
func checkForDuplicateScan(qrCode: String) { DataService.ds.REF_SAMPLES.observeSingleEvent(of: .value, with: { (snapshot) in if let dict = snapshot.value as? [String:Any] { print(dict) print(qrCode) print(dict["\(qrCode)"]) if let sampleDict = dict[qrCode] as? [String:Any] { print(sampleDict) if let isScanned = sampleDict["scanned"] as? Bool { if isScanned == true { print("Already Scanned") let alert = UIAlertController(title: "Already Redeemed", message: "This offer has already been redeemed by you. Stay tuned.", preferredStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { (alert) in self.tabBarController?.selectedIndex = 0 })) self.present(alert, animated: true, completion: nil) } else { print("New Scan") self.updateQRCode(qrCode: qrCode) } } else { print("Error: can't read/find 'scanned' ") } }else { print("Error: Invalid Code Scanned") let alert = UIAlertController(title: "Invalid QR Code Scanned", message: "The code that you've scanned is Invalid.", preferredStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { (alert) in self.tabBarController?.selectedIndex = 0 })) self.present(alert, animated: true, completion: nil) } } else { print("Error: can't get dictionary from snapshot value") } }) }
ここでコンソール・ログです。
プリント(辞書)'test13' は 'ゼロ' は
プリント(dictの[ "\(QRコード)"]) から来た
から来ました
プリント(QRコード)
このコードは昨日から動作していましたが、今日は失敗しています。
私を助けてください!
編集:これは私が読もうとしているデータです。
ここでJSONファイルも同様ですJSON FILE
アップデート:私はここでの問題を発見したように見えます。
このコードを実行すると、何も印刷されません。
if let newDict = dict[qrCode] as? NSDictionary {
print(newDict)
}
しかし、これを行うと、dictにアクセスできます。 QRコード値を有する文字列 "TEST10"
奇妙なASFあること
if let newDict = dict["test10"] as? NSDictionary {
print(newDict)
}
注意!それの背後にある理由とこれを修正する方法はまだ分かりません。
ログのどの行がどのコードから来るのか分かりません。 –
@FrankvanPuffelenが –
に更新されましたあなたの質問にJSONツリーの画像が含まれています。実際のJSONをテキストとして置き換えてください。このテキストは[Firebaseデータベースコンソール](https://console.firebase.google.com/project/_/database/data/)の[Export JSON]リンクをクリックすることで簡単に取得できます。 。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –