作者:大众化的公爵樱桃rwr_208 | 来源:互联网 | 2023-08-26 14:02
篇首语:本文由编程笔记#小编为大家整理,主要介绍了为什么没有调用此Firebase侦听器?相关的知识,希望对你有一定的参考价值。
各位程序员,我正在使用Firebase和Flutter开发一个新的应用程序,当我从实时数据库中检索一些如下所示的数据时,我已经完成了一个问题:
我的主要问题是这部分代码根本没有被调用:.listen((Event event) {//...})
。
这是我用来检索数据的代码的一部分:
static Future> getTodoStream(String todoKey,
void onData(Todo todo)) async {
String accountKey = await Preferences.getAccountKey();
StreamSubscription subscription = FirebaseDatabase.instance
.reference()
.child("")
.child(account)
.child("")
.child(Key)
.onValue
.listen((Event event) {
var todo = new Todo.fromJson(event.snapshot.key, event.snapshot.value);
onData(todo);
});
}
我按照本教程:
https://www.youtube.com/watch?v=Bper2K92bd8&feature=youtu.be
这是我用作例子的代码:
https://gist.github.com/branflake2267/ea80ce71179c41fdd8bbdb796ca889f4
但是,正如我所说,听不到触发。你们有谁知道为什么它不起作用?谢谢你的建议。
答案
如果你的代码确实包含这些空白字符串(child("")
),我认为它不会起作用!
首先尝试指定您知道存在的常量路径,例如:
FirebaseDatabase.instance.reference()
.child("/appointment-764c0/Akashdeep")
.onValue.listen((Event event) {
在Akashdeep内改变一些东西......
也许那时你可以将你的代码更改为......
.child("/$accountKey/$otherParam")
另一答案
主要问题是数据库的配置,因为它没有设置为读/写。