gpt4 book ai didi

ios - 无法从 Firebase 数据库检索数据

转载 作者:行者123 更新时间:2023-11-30 12:26:03 26 4
gpt4 key购买 nike

我的代码无法从 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() 我在启动 View Controller 时调用,即使我在数据库中有值,它也始终为零

谁能告诉我我在这里做错了什么?

enter image description here

最佳答案

你改变了数据库的规则吗?就像如果您正在进行身份验证,则应该为写入和读取设置 not null ,如果您没有进行身份验证,则应将两者都设置为 null ,因为与上述完全相反的操作可能会导致一些错误!!

关于ios - 无法从 Firebase 数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44206304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com