【问题标题】:Cloud Firestore query flutterCloud Firestore 查询颤动
【发布时间】:2020-06-29 21:35:04
【问题描述】:

我有一组存储在 Cloud Firestore 中的文档。每个文档都与从 firebase auth 检索到的用户 uid 相关联。

现在我想在个人资料部分显示用户上传的帖子。任何想法如何做到这一点?

获取用户uid的方法

String userID = '';

getUserUID() async{
  FirebaseUser user = await FirebaseAuth.instance.currentUser();
  userID = user.uid.toString();
  return userID;
}

查询数据的代码。

Firestore.instance.collection('Music').where('uid', isEqualTo: userID.toString()).snapshots(),

注意:如果我将 userID.toString() 替换为实际的 uid,它会显示所需的结果。

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    await 放入方法中并不会神奇地使其同步。如果你在查询之前调用 ``,你仍然需要await 那个调用。

    最简单的解决方法是:

    Firestore.instance
             .collection('Music')
             .where('uid', isEqualTo: await getUserUID()).snapshots(),
    

    【讨论】:

    • 这会引发错误:StreamBuilder(stream: Firestore.instance.collection('Music').where('uid', isEqualTo:await getUserUID()).snapshots(), builder: (BuildContext上下文,AsyncSnapshot 快照)
    • 在这种情况下查看错误是什么会很有帮助。另外:您是否已经搜索过错误消息?
    • 所以它告诉 await 是一个意外的文本“等待”,请尝试删除该文本。
    • 您使用此代码的功能听起来好像没有标记为async,这是为了能够在其中使用await所必需的。
    • 那么我应该在哪里添加异步函数呢?这就是我遇到困难的部分。如果你愿意,我可以分享整个代码
    猜你喜欢
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2019-08-23
    相关资源
    最近更新 更多