在Flatter中(并使用Firebase realtime db),如何获取我已注册的所有用户的快照?

在Flatter中(并使用Firebase realtime db),如何获取我已注册的所有用户的快照?,firebase,firebase-realtime-database,dart,flutter,Firebase,Firebase Realtime Database,Dart,Flutter,我有一个firebase实时数据库,其层次结构如下: 我如何获得它,以便在我的颤振应用程序代码中,我可以使用已注册的用户数量?(这是数据库中作为用户节点的子节点可用的ID数量) 我尝试了以下方法: DatabaseReference db = FirebaseDatabase.instance.reference().child("Users"); db.orderByKey().once().then((DataSnapshot snapshot){ Map<dynamic,

我有一个firebase实时数据库,其层次结构如下:

我如何获得它,以便在我的颤振应用程序代码中,我可以使用已注册的用户数量?(这是数据库中作为用户节点的子节点可用的ID数量)

我尝试了以下方法:

DatabaseReference db = FirebaseDatabase.instance.reference().child("Users");
db.orderByKey().once().then((DataSnapshot snapshot){
    Map<dynamic, dynamic> values = snapshot.value;
    values.forEach((key, values){
      print(values[key]);
    });
});
DatabaseReference db=FirebaseDatabase.instance.reference().child(“用户”);
db.orderByKey().once().then((DataSnapshot快照){
映射值=snapshot.value;
values.forEach((键,值){
打印(值[键]);
});
});

如果您所追求的只是ID的数量,为什么不计算快照的长度或在
值中增加一个计数器。forEach()


如果我误解了您的答案,请更仔细地解释,我会回复您:)

我确实尝试过这个,但我一直收到一个问题,说foreach循环是在空对象上调用的:/I我不知道如何修复它尝试添加
打印(snapshot.toString())以查看地图声明是否包含任何内容。一个问题:你确定
.value
是一个东西,而不是其他东西吗?我知道这是一个问题,但他们需要在获取任何值之前附加
.child()