如何在flutter中访问Firebase实时数据库快照上的children属性?

时间:2018-07-30 17:02:45

标签: swift firebase firebase-realtime-database flutter

我过去经常快速编写snapshot.children.allObjects。如何在带有Firebase的Flutter中编写此代码?如果我使用snapshot.value作为! [String:Any]快照的节点未从数据库中按顺序检索。还有其他选项可从Firebase控制台按顺序检索对象吗?

query.observeSingleEvent(of: .value, with: { (snapshot) in
    guard let snapshot = snapshot.children.allObjects as? [DataSnapshot]
        else { return completion(nil, []) }

    snapshot.forEach({ (postSnapshot) in
        print(postSnapshot)
    })
})

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

FirebaseDatabase database = new FirebaseDatabase(app: widget.app);
_messagesRef = database.reference().child('users');
database.reference().once().then((DataSnapshot snapshot) {
   var names=snapshot.value["name"].toString();
   var email=snapshot.value["email"].toString();
});

假设您有此数据库:

users
  name: "userx"
  email: "userx@gmail.com"

首先,您配置数据库,然后引用子项users上的位置。然后,您附加一个侦听器once()来检索数据。

检查以下链接:

https://github.com/flutter/plugins/blob/master/packages/firebase_database/lib/src/event.dart#L27 https://pub.dartlang.org/packages/firebase_database#-example-tab-