我的代碼我無法從Firebase檢索數據。無法從Firebase數據庫檢索數據
當我在Firebase上添加值時,我看到在我的控制檯上的Firebase數據庫中添加了這些項目。
另外我還創建了監聽器.childAdded
,並且我看到在Firebase數據庫中添加了項目。
但是當我呼叫.value
它檢索nil
結果。
我不知道那裏發生了什麼。
這是我的代碼。
class FirebaseManager {
var ref: DatabaseReference?
var database: DatabaseHandle?
static let shared: FirebaseManager = {
Database.database().isPersistenceEnabled = true
return FirebaseManager()
}()
private func initFireabase() {
ref = Database.database().reference(withPath: AMUtils.getUDID())
}
func addToDB(composition: Composition) {
initFireabase()
ref?.child(String(composition.id)).child("id").setValue(composition.id)
ref?.child(String(composition.id)).child("title").setValue(composition.title)
}
func removeFromDb(composition: Composition) {
ref?.child(String(composition.id)).removeValue()
}
func getCompositonFromDB(onResult: @escaping ([Composition]) -> Void){
initFireabase()
var compositions: [Composition] = []
database = ref?.observe(.value, with: { (snapshot) in
compositions.removeAll()
let value = snapshot.value as? JSON
compositions.append(AudioListParser.parseObject(json: value!))
self.ref?.removeObserver(withHandle: self.database!)
onResult(compositions)
})
}
}
getCompositonFromDB()我當我開始視圖控制器調用,這始終是零,甚至我對數據庫值
誰能告訴我,我做錯了什麼嗎?
'snapshot.value'在你的案例中公開了一個'NSDictionary'。我不確定'JSON'類型是什麼,但它不是'FIRDataSnapshot.value'返回的類型:https://firebase.google.com/docs/reference/ios/firebasedatabase/api/reference/Classes/ FIRDataSnapshot#value –
@FrankvanPuffelen public typealias JSON = [String:Any] – pmb
*這總是零*是什麼意思?如果您在觀察線後立即添加*打印(快照)*行,打印什麼? – Jay