Ivには検索バーがあり、入力するとそのユーザのユーザ名のデータベースが検索されます。ユーザー名を見つけるコードが動作しますが、特定の値を試してみるとクラッシュします。これは、スナップショットを印刷するからコードFirebase 2.0 - FIRDataSnapshotからのデータの読み込みが正しくありません
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
Database.child("users").queryOrderedByChild("username").queryEqualToValue(searchText).observeSingleEventOfType(.Value, withBlock: { snapshot in
print(snapshot)
print(snapshot.value!["first_name"] as? String)
print(snapshot.value!["last_name"] as? String)
print(snapshot.value!["username"] as? String)
print(snapshot.value!["profile_picture_url"] as? String)
})
}
結果は
Snap (users) {
12345UIDEXample = {
"first_name" = Bob;
"last_name" = Someone;
"profile_picture_url" = "exampleurl.com";
username = bobby;
};
}
をしているが、私はしようとすると、アクセスが
snapshot.value!["first_name"] as? String
それがnilやクラッシュを返すのですか? なぜそれが明確にjsonに表示されていれば、そのデータはそこにあると返しましたが、私は値をexstractしませんか?