【问题标题】:How to access children property on Firebase Realtime Database snapshot in flutter?如何在 Flutter 中访问 Firebase 实时数据库快照上的子属性?
【发布时间】:2019-01-07 00:00:52
【问题描述】:

我曾经用 swift 编写 snapshot.children.allObjects。如何在 firebase 中编写这段代码?如果我使用 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)
    })
})

【问题讨论】:

    标签: swift firebase firebase-realtime-database flutter


    【解决方案1】:

    尝试以下方法:

    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-

    【讨论】:

    • 问题是 Firebase 快照没有按顺序显示。例如,当我想根据时间戳查询用户时,我不能这样做,因为我在我的应用程序中使用了分页来检索用户段。
    • 为什么不使用 orderByChild 或 startAt 或 endAt 之类的查询? github.com/flutter/plugins/blob/master/packages/…
    • 我愿意,但我结束的键并不是真正的最后一个键,因为这些键不是从 firebase 中按顺序检索的。
    猜你喜欢
    • 2022-01-21
    • 2020-06-21
    • 2021-01-21
    • 2021-04-22
    • 2017-01-30
    • 2020-08-13
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多