如何使用flutter和firebase获取与我的userId相关的周围数据

时间:2019-12-30 06:59:31

标签: ios firebase flutter firebase-realtime-database dart

使用flutter时,我能够成功获取UserId,但是我希望能够获取更多用户数据(使用UserId)

周边信息:

as seen here

使用userId我将如何打印用户;命名为bio,成员身份...等等?

3 个答案:

答案 0 :(得分:0)

getUsers() async {
//here fbPath is reference to your users path

fbPath.once().then((user){
      if(user.value !=null){
      Map.from(user.value).forEach((k,v){
      //here users is List<Map>
      setState((){
          users.add(v);
      });
     }
   }
});
}

//Or

getUsers() async {
   //here fbPath is reference to your users path
   //and userListener is StreamSubscription

   userListener = fbPath.onChildAdded.listen((user){
   //here users is List<Map>
   setState((){
       users.add(Map.from(user.snapshot.value));
    });
  });
}

//and cancel in dispose method by calling 

userListener.cancel();

答案 1 :(得分:0)

尝试这样:

Future<dynamic> getWeightinKeg() async {
    final DocumentReference document =  Firestore.instance.collection('you_collection_name').document(user_id);
    await document.get().then<dynamic>(( DocumentSnapshot snapshot) async {
    final dynamic data = snapshot.data;
     print(data['name'].toString())
     //Do whatever you want to do with data here.  
    });
}

答案 2 :(得分:0)

由于您使用的是实时数据库,因此要获取其他数据,您可以执行以下操作:

db = FirebaseDatabase.instance.reference().child("Users");
db.once().then((DataSnapshot snapshot){
  Map<dynamic, dynamic> values = snapshot.value;
     values.forEach((key,values) {
      print(values);
      print(values["name"]);
    });
 });

首先添加对节点Users的引用,然后使用forEach方法在检索到的Map内部进行迭代,并检索其他值。