android - Cloud Firestore 安全规则开发模式

标签 android firebase firebase-security

我们正在开发基于 Cloud Firestore 的 Android 应用。

现在,我们已将应用发布到生产环境,并继续添加更多功能,这些变化迫使我们添加/更改 Firestore 安全规则。

问题是如何在向所有用户发布规则之前使用新的安全规则测试应用程序?

我在文档中看到 Firestore 有一些模拟器,但我不明白他是否可以提供帮助或者它仅用于单元测试,还有一个模拟器可以在草稿模式下测试单个请求,但最后有一天我们需要手动测试应用程序的功能。

换句话说,有没有办法在将应用应用到所有用户之前更改安全规则并测试应用?

我还有一些问题想问那些在生产环境中使用 Firebase 的人:

  1. 我猜你的数据库是为开发和生产分开的,你是把它分开在同一个项目中,还是用 2 个 google-services.json 文件创建 2 个项目,如果你在同一个项目中使用,你如何处理两个版本的安全规则变化?
  2. 应用版本和数据结构之间可能会发生变化,但规则只有一个版本,某些规则会与另一个应用版本不兼容,您如何处理这种情况?有没有办法将特定的应用版本与特定的安全规则相匹配?

也许我遗漏了一些关于 Firestore 的重要信息。

提前致谢。

最佳答案

您可能需要查看 Firebase 模拟器(测试版)以测试安全规则:

Firebase Emulators

The Firebase Emulators make it easier to fully validate your app's behavior and verify your Firebase Security Rules configurations. Use the Firebase Emulators to run and automate unit tests in a local environment.

样本测试:

firebase.assertFails(app.firestore().collection("private").doc("super-secret-document").get());

assertFails(pr: Promise) => Promise

This method returns a promise that is rejected if the input succeeds or that succeeds if the input is rejected. Use this to assert if a database read or write fails.

更多信息:https://firebase.google.com/docs/rules/unit-tests

关于android - Cloud Firestore 安全规则开发模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57972089/

相关文章:

java - 如何从以下cataLog中找到异常?

java - 单击按钮启动新 Activity

android - 在布局上使用 setOnClickListener

android - 默认情况下,Android 手机上的 Firebase FCM token 存储在哪里

ios - Firebase 登录的授权错误列表

javascript - 对 Firebase 安全性的基本了解

firebase - Firestore 安全规则 - 如果用户使用电话号码创建帐户,则允许

android - 如何以编程方式静默更新 apk 并重新启动应用程序?

android - 是否可以在网络上运行 eclipse IDE,以便其他用户可以与您一起工作?喜欢谷歌文档?

java - 我在将 Firebase 实时数据库中的数据检索到字符串变量中时遇到问题