【发布时间】:2019-05-14 06:22:13
【问题描述】:
我在 Flutter 应用程序中有以下几行。 _devicesRef 指的是 Firebase 实时数据库中的某个节点。
_devicesRef.child(deviceId).once().then((DataSnapshot data) async {
print(data.key);
var a = await ...
print(a);
}
这些行工作正常。现在我想使用await 而不是.then()。但不知何故,once() 永远不会回来。
var data = await _devicesRef.child(deviceId).once();
print(data.key);
var a = await ...
print (a);
所以print(data.key) 永远不会被调用。
这里有什么问题?
【问题讨论】:
-
你是在一个方法中调用 await _devicesRef.child ... 吗?
-
是
Future<void> generateSomeId() async { ... } -
嗯,奇怪,应该能用,你知道有没有数据吗?
-
99% 没有。我想创建一个 ID 并检查该 ID 是否已存在于数据库中。所以我创建了一个随机字符串并尝试获取这个节点。如果存在,我必须创建一个新 ID。如果它不存在,那么我会将它添加到数据库中。所以更多的是检查一个节点是否已经存在。
标签: firebase-realtime-database dart flutter