Flutter和FireBase FireStore的权限问题

3gtaxfhh  于 2023-02-19  发布在  Flutter
关注(0)|答案(1)|浏览(166)

有人能帮帮我吗?我对FireStore和FireBase完全是个新手,我想做一些简单的事情,FireBase说我没有权限做?我正在使用Flutter。我在FireBase规则控制台中设置了以下规则。我只有一个项目和一个FireStore数据库。

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow write: if request.auth != null;
      allow read: if true;
    }
  }
}

我有一个用户设置集合,它有一个uid作为集合参数,并在匿名登录flutter后运行以下代码,这不会引发错误。

void createUser(String userID, String userName, String password) async {

    final CollectionReference _users =
        FirebaseFirestore.instance.collection("Users");

    final data = {"Created": DateTime.now(), "LastLoggedIn": DateTime.now()};

    _users.doc(userID).set(data, SetOptions(merge: true));
  }

我收到以下错误消息10.3.0 - [FirebaseFirestore][I-FST 000001]在用户处写入/QUIEvBpJeAgprgEan 0 S736 aKjdk 2失败:缺少权限或权限不足。
我正在使用匿名登录
即使我使用以下规则,这是应该允许所有的阅读和写入的数据,我得到相同的错误:

match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

我允许在设置权限和测试之前有几分钟的时间。谢谢。

lp0sw83n

lp0sw83n1#

您是否尝试过使用时间戳的默认规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if
          request.time < timestamp.date(2023, 11, 25);
    }
  }
}

相关问题