Chcę uzyskać adres i nazwęużytkowników w Firebase, ale po prostu nie mogę znaleźć sposobu, aby to zrobić. Oto mój najlepszy wysiłek. Wydaje się to w porządku w Xcode, ale aplikacja ulega awarii, gdy naciskam przycisk, aby pobrać wartości (wątek 1 exc_bad_instruction (code = exc_i386_invop subcode = 0x0)
ref?.child("users").child(user)
.observeSingleEvent(of: .value, with: { (snapshot) in
let userDict = snapshot.value as! [String: Any]
let address = userDict["Address:"] as! String
let name = userDict["Name:"] as! String
print("Address: (address) Name: (name)")})
Odpowiedzi:
2 dla odpowiedzi № 1jak @Moritz wspomniany w komentarzu, jeśli wymusisz rozpakowanie (mówisz, że te wartości nie będą nil
) i czy okaże się jedną z twoich wartości nil
, spowoduje to awarię aplikacji. Spróbuj czegoś takiego -
ref?.child("users").child(user).observeSingleEvent(of: .value, with: { snapshot in
guard let userDict = snapshot.value as? [String: Any],
let address = userDict["Address:"] as? String,
let name = userDict["Name:"] as? String else {
return
}
print("Address: (address) Name: (name)")
})
To nie wydrukuje niczego, jeśli którykolwiek z plików Name
lub Address
jest nil