在 React 本机移动应用程序中集成 firestore 时获得“firestore/permission-denied”

Posted

技术标签:

【中文标题】在 React 本机移动应用程序中集成 firestore 时获得“firestore/permission-denied”【英文标题】:Getting 'firestore/permission-denied' while integrating firestore in React native mobile app 【发布时间】:2018-06-18 13:51:43 【问题描述】:

我正在尝试通过 react native 应用程序来存储文档,但遇到以下问题

这里是代码

constructor() 
    super();
    this.ref = firebase.firestore().collection('todos');
  

我们正在触发按钮点击

addTodo() 
      this.ref.add(
        title: this.state.textInput,
        complete: false,
      );
    

我们正面临这个问题

错误:Firestore:调用者没有执行指定操作的权限。 (firestore/permission-denied)。 错误:Firestore:调用者没有执行指定操作的权限。 (firestore/permission-denied)。

【问题讨论】:

【参考方案1】:

如果在运行addTodo() 时出现此错误,则表示用户没有写入todos 集合的权限。通过其server-side security rules 控制对 Firestore 数据的访问。

要简单地允许任何人写信给todos,请使用如下规则:

service cloud.firestore 
  match /databases/database/documents 
    match /todos/document=** 
      allow read, write: if true;
    
  

但我强烈建议您阅读documentation,以便您可以编写更安全的规则来满足您的应用需求。

【讨论】:

【参考方案2】:

在 Firestore 中,如果您有任何权限被拒绝。这是因为 Firestore 安全规则。

在这种情况下,转到您的数据库规则部分并将 if false 更改为 if true

allow read, write: if true;

【讨论】:

以上是关于在 React 本机移动应用程序中集成 firestore 时获得“firestore/permission-denied”的主要内容,如果未能解决你的问题,请参考以下文章

React Native项目中集成react-native-vector-icons

React Native项目中集成react-native-vector-icons

如何在 React 应用程序中集成 keycloak 身份验证?

如何在 React WebApp 中集成 OpenCV.js?

在 React.js 中集成 PayPal 的 iframe 渲染错误

如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧