我的代码我无法从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()当我启动视图控制器时我正在调用,即使我在数据库上有值,这也总是零
有谁能告诉我这里做错了什么?
答案 0 :(得分:0)