Flutter中Firestore批量写入更新用户文档时权限被拒绝

dgenwo3n  于 6个月前  发布在  Flutter
关注(0)|答案(1)|浏览(91)

以下是我得到的例外:
W/Firestore(22209):(24.9.1)[WriteStream]:(e05714f)Stream closed with status:Status{code=PERMISSION_DENIED,description=Missing or insufficient permissions.,cause=null}.
代码如下:

/// Marks user as deleted as long as all his ads
  Future<void> storeMarkAsDeletedAsLongAsAllHisAds() async {
    final fs = FirebaseFirestore.instance;
    final writeBatch = fs.batch();

    // Get user from the (current) ID
    final user = await fs.collection("users").doc(id).get();

    // Mark user as deleted
    writeBatch.update(user.reference, {
      "deleted": true,
    });

    return writeBatch.commit();
  }

字符串
我的裁决如下:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
         
    // === Get the user using uid
    function getUser() {
      return get(/databases/$(database)/documents/users/$(request.auth.uid)).data;
    }
      
    match /users/{uid}/{document=**} {
       allow read: if true; 
       allow create, update, delete: if request.auth.uid == uid;  
    }


你怎么了?

7kqas0il

7kqas0il1#

当我遇到这样的问题时,我做的第一件事就是让我的代码检查它是否符合我的规则的要求。所以:将storeMarkAsDeletedAsLongAsAllHisAds Package 在一个条件中,如下所示:

if (FirebaseAuth.instance.currentUser != null)

字符串
看看会不会有机会。

相关问题