首页 > 解决方案 > 如何使用字符串或变量在flutter中使用OrderByChild从firebase实时数据库中获取数据

问题描述

我正在尝试获取包含当前用户 uid 的所有会议。我正在尝试通过使用 OrderByChild($string).(firebaseauth.currentuser.uid) 来完成它,如下所示在我的代码中。在我的代码中,我在字符串中获取了当前用户特定的键,然后用它来获取包含该键的所有数据。

String MyAssigningID = "...";
Future<void> _fetchUserASSIGNINGIDFromDatabase() async {
DatabaseReference reference = FirebaseDatabase.instance.reference().child("User").child(widget.GroupID).child("Group-Members").child(auth.currentUser.uid);
final DataSnapshot data = await reference.once();
setState(() {
  MyAssigningID = data.value['AssigningID'].toString();
});
}

GetGroupFunction() {
DatabaseReference referenceData = FirebaseDatabase.instance.reference().child("User").child(widget.GroupID).child("Conferences");
referenceData.orderByChild(MyAssigningID).equalTo(auth.currentUser.uid).once().then((DataSnapshot dataSnapshot) {
  Conferencelists.clear();
  var keys = dataSnapshot.value.keys;
  var values = dataSnapshot.value;

  for (var key in keys) {
    Conferencemodals conferencemodals = new Conferencemodals
      (
        values [key]['Title'],
        values [key]['Description'],
        values [key]['StartingTime'],
        values [key]['EndingTime'],
        values [key]['Duration'],
        values [key]['ConferenceID'],
        values [key]['SchoolUpin'],
        values [key]['CreatedDate'],
        values [key]['Published'],
        values [key]['ConferenceDay'],
        values [key]['ConferenceHost'],
    );
    Conferencelists.add(conferencemodals);
  }
  setState(() {
    TotalConferences = Conferencelists.length.toString();
  });
});
}

标签: flutterdartfirebase-realtime-database

解决方案


推荐阅读