Swift 如何在Flatter中访问Firebase实时数据库快照的子属性?

Swift 如何在Flatter中访问Firebase实时数据库快照的子属性?,swift,firebase,firebase-realtime-database,flutter,Swift,Firebase,Firebase Realtime Database,Flutter,我以前用swift写snapshot.children.allObjects。如何使用firebase在flifter中编写此代码?如果我使用snapshot.value作为![String:Any]快照的节点未按顺序从数据库中检索。是否有其他选项可以按顺序从Firebase控制台检索对象 query.observeSingleEvent(of: .value, with: { (snapshot) in guard let snapshot = snapshot.children.al

我以前用swift写snapshot.children.allObjects。如何使用firebase在flifter中编写此代码?如果我使用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)
    })
})
请尝试以下操作:

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"
首先配置数据库,然后在child
users
处引用位置。然后附加一个侦听器
one()
,以检索数据

查看以下链接:


问题在于Firebase快照没有按顺序显示。例如,当我需要基于时间戳查询用户时,我不能这样做,因为我在应用程序中使用分页来检索用户段。为什么不使用orderByChild、startAt或endAt之类的查询?我知道,但我结束的键实际上不是最后一个键,因为这些键不是按顺序从firebase检索的。