【发布时间】:2018-11-02 14:40:15
【问题描述】:
我尝试用 Flutter 体验 Firebase Live 数据库。 我只想在 firebase 响应的数据快照中获得一个值。
我的火力基地
我的代码
static Future<User> getUser(String userKey) async {
Completer<User> completer = new Completer<User>();
String accountKey = await Preferences.getAccountKey();
FirebaseDatabase.instance
.reference()
.child("accounts")
.child(accountKey)
.child("users")
.childOrderBy("Group_id")
.equals("54")
.once()
.then((DataSnapshot snapshot) {
var user = new User.fromSnapShot(snapshot.key, snapshot.value);
completer.complete(user);
});
return completer.future;
}
}
class User {
final String key;
String firstName;
Todo.fromJson(this.key, Map data) {
firstname= data['Firstname'];
if (firstname== null) {
firstname= '';
}
}
}
我的名字为 Null 值。 我想我应该导航到 snapshot.value 的子节点。但是用 foreach 或 Map() 管理是不可能的,...
亲切的问候,杰罗姆
【问题讨论】:
-
我对颤振不熟悉。但是您的数据库引用似乎与您的数据库不匹配:您使用的是
.child("user"),但在您的数据库中它是users -
还有
childOrderBy("Group_Id"),你的数据库中有Group_id。 -
好的,谢谢我更正了我的帖子。但我的真实代码是正确的。事实上,如果我使用 print(snapshot.value),我会收到响应 (JSON) 但我无法获得 snapshot.value['firstName']
-
你得到了什么对象作为 snapshot.value?
标签: firebase firebase-realtime-database flutter