如何将我的 iOS 项目的 Firebase Firestore 项目从测试模式转变为生产模式?

ohu*_*ohu 6 ios firebase firebase-security google-cloud-firestore

我在测试模式下使用 Firebase 的 Firestore 数据库启动了一个 iOS 应用程序,但现在我已经完成了测试模式的使用,如何将数据库转换为生产模式?

小智 12

当您创建新的 Firestore 时,它​​会提示您是否要将其设置为生产模式或测试模式。两者之间的唯一区别是测试模式允许读取和写入功能,而生产模式则不允许。要从测试模式更改为生产模式,您只需转到 Firebase > Firestore > 规则 > 编辑规则即可。然后将代码更改为:

rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if
             request.time < timestamp.date(2021, 6, 6);
           }
         }
       }
Run Code Online (Sandbox Code Playgroud)

对此:

rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if false;
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)


Dou*_*son 11

没有真正可以切换到的“模式”。如果您指的是让您选择初始安全规则的对话框,那么所做的就是预先填充一些安全规则以供您开始使用。之后,您就可以制定适合您的应用程序的安全规则。我强烈建议您阅读链接的文档以了解您应该做什么。无论您做什么,它都会根据您的特定数据和访问模式进行高度定制。

  • 初始项目设置 UI 确实引用了“测试模式”,并指出它将允许任何人在 30 天内读写。我相信这就是OP所指的。如果您选择使用“测试模式”,则会创建一个规则,该规则仅检查日期并与您创建项目后的 30 天进行比较。 (3认同)

Anj*_*tam 5

仅允许经过身份验证的用户在生产环境中读取/写入 Firestore

我们可以设置安全规则,只有经过身份验证的用户才能读取/写入 firestore,这是production.

如果您选择为每个人提供一些数据,请使用一个完整的单独集合,例如public其中包含不需要任何身份验证的数据。

在此处更改规则 Firebase > Firestore > 规则 > 编辑规则

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
   match /public/{publicDoc}{
   allow read: if true;
   }
   match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:您需要为您的项目设置身份验证才能使上述代码正常工作。

如果您的应用程序没有身份验证,请在此处检查其他可能性