为什么我的手机认证安全规则不工作?



我正在使用firestore,我的安全规则不起作用!我想根据登录的用户访问数据库,我的结构是这样的,user/userid/user的集合。登录用户只允许访问自己的数据/userId/自己的数据。

我的安全规则:

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /user/{userId}{
allow read, write: if request.auth.uid == userId;
match /{subCollections=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
}

注意:同样的&代码结构适用于Email和密码身份验证,但不适用于电话身份验证。

问题解决了!当我联系firebase支持时,他们告诉我,我在模拟中遇到的错误是因为ID与请求的ID不匹配,这很明显。所以我的错误是,我在路径区域使用通配符,如user/{userId},而不是user/randomId324234....现在它正在正常工作

更新

  • request.auth.token.sub为实时数据库
  • request.auth.uid用于Firestore

确保每个数据库使用正确的信息和参数,并确保用户在访问数据请求之前成功登录。

来源:https://firebase.google.com/docs/rules/rules-and-auth leverage_user_information_in_rules

相关内容

  • 没有找到相关文章

最新更新