Flutter火力基地:如何通过用户名获取用户的id?

nbewdwxp  于 2023-01-21  发布在  Flutter
关注(0)|答案(1)|浏览(208)

我实际上正在开发一个社交应用程序。我想创建一个好友系统,但我在用户搜索方面遇到了困难。我希望用户将好友的用户名放在一个TextField小部件中,查询Cloud Firestore(Firebase)数据库,并获取好友的用户配置文件(如果存在)。
问题是,用户名存储在“Users/USER_ID/profile/username”中,我不知道如何查询数据库以获取此需求。
以下是我所说的Cloud Firestore“路径”:-

欢迎提供一点帮助:)
我尝试了这个方法,但是返回了null,可能是因为它没有在正确的位置搜索。

dynamic sUserFromUsername(String username) async {
  try {
    await FirebaseFirestore.instance
      .collection('Users')
      .where('username', isEqualTo: username)
      .get()
      .then((value) => value);
  } catch (exception) {
    print(exception);
  }
}
bxjv4tth

bxjv4tth1#

username位于profile字段中,因此必须使用profile.username

FirebaseFirestore.instance
    .collection('Users')
    .where('profile.username', isEqualTo: enteredUsername)
    .get()
    .then((querySnapshot) {
      if (querySnapshot.docs.isNotEmpty) {
        // User profile found, do something with it
        var userProfile = querySnapshot.docs[0].data();
        print(userProfile);
      } else {
        // User profile not found, display an error message
        print('User not found');
      }
    });

相关问题