是否尝试按用户uid firebase分隔数据?

是否尝试按用户uid firebase分隔数据?,firebase,flutter,dart,google-cloud-firestore,firebase-security,Firebase,Flutter,Dart,Google Cloud Firestore,Firebase Security,我的规则中有这个,但它不起作用,几周前才开始使用firebase match /pets/{owner} { allow read, write: if request.auth.uid == owner } 这是im用于从集合中获取数据的代码: Stream<List<Pet>> get pets{ print(userUid); return petsCollection.where('owner', isEqua

我的规则中有这个,但它不起作用,几周前才开始使用firebase

    match /pets/{owner} {
      allow read, write: if request.auth.uid == owner
    }
这是im用于从集合中获取数据的代码:

  Stream<List<Pet>> get pets{

    print(userUid);

    return petsCollection.where('owner', isEqualTo: 
       userUid).snapshots().map(_petListFromSnapshot);
  }
Stream获取宠物{
打印(userUid);
返回PETS集合。其中('owner',isEqualTo:
userUid).snapshots().map(_petListFromSnapshot);
}
我正在使用打印来查看是否从当前用户处获取该查询的uid,但它为空。在代码的不同部分,我已经将创建文档的人的uid添加到集合中


我想说的是,我需要关于如何只获取当前用户数据的建议。

您不能使用安全规则筛选结果

一旦您保护了数据并开始编写查询,请记住,安全规则不是过滤器。您不能为集合中的所有文档编写查询,而期望Cloud Firestore仅返回当前客户端有权访问的文档


使用筛选器获取当前用户相关文档。

不能使用安全规则筛选结果

一旦您保护了数据并开始编写查询,请记住,安全规则不是过滤器。您不能为集合中的所有文档编写查询,而期望Cloud Firestore仅返回当前客户端有权访问的文档


使用筛选器获取当前与用户相关的文档。

请编辑问题,以显示发出请求的客户端代码,该代码的工作方式与您期望的不符。您还应证明在发出请求时确实有用户登录。请编辑问题,以显示发出请求的客户端代码未按您预期的方式工作。您还应该证明在发出请求时确实有用户登录。@LeonardoEmili我们还不知道它是否正确。OP没有声明不起作用的查询。文档get()应该可以正常工作(只要用户已登录,并且他们正在请求自己的文档,我们不知道这一点),但是没有筛选器的查询get()将无法工作。我们甚至不知道他们是否在查询正确的集合。我们需要查看客户端的查询。在查询中,我试图用uid获取数据,但我需要一个异步方法,因为我想添加当前用户数据并用uid创建列表cards@LeonardoEmili我们还不知道它是否真的正确。OP没有声明不起作用的查询。文档get()应该可以正常工作(只要用户已登录,并且他们正在请求自己的文档,我们不知道这一点),但是没有筛选器的查询get()将无法工作。我们甚至不知道他们是否在查询正确的集合。我们需要查看客户机的查询。在查询中,我试图用uid获取数据,但我需要一个异步方法,因为我想添加当前用户数据,并用卡片列出一个列表