各位程序员,我正在使用Firebase和Flutter开发一个新的应用程序,当我从实时数据库中检索一些如下所示的数据时,我已经完成了一个问题:
我的主要问题是这部分代码根本没有被调用:.listen((Event event) {//...})
。
这是我用来检索数据的代码的一部分:
static Future<StreamSubscription<Event>> getTodoStream(String todoKey,
void onData(Todo todo)) async {
String accountKey = await Preferences.getAccountKey();
StreamSubscription<Event> 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")
主要问题是数据库的配置,因为它没有设置为读/写。