android - 仅允许少数设备根据自定义规则访问 firebase 中的数据
问题描述
我有一个 android Kiosk 应用程序。我们手动将应用程序安装到设备上。数据是从 Firebase 中获取的。我想在 Firebase 中设置规则,以便只有安装了我的应用程序的设备才能访问数据。
每个设备都有一个生成的 deviceId,如下所示
String thisDeviceId = Settings.Secure.getString(MyApplication.getAppContext().getContentResolver(),
Settings.Secure.ANDROID_ID);
并且在注册设备时,每个设备都会被赋予一个组 ID。
现有的所有数据都属于这两个类别
- 设备/设备 ID/路径
- 组/组 ID/路径
我想在 Firestore 中设置以下规则: 设备 ID 为“abc”的设备只能访问路径(读写)设备/abc/path 组“cde”的设备只能访问路径(读写)组/cde/路径
我尝试阅读文档,但无法理解任何符合我要求的文档。知道如何实现吗?任何想法都会非常有帮助。
解决方案
Cloud Firestore 安全规则不支持使用某些设备 ID 来限制访问的想法。此 ID 很容易被恶意客户端欺骗。限制访问的唯一可能方法是使用 Firebase 身份验证的每个用户。
推荐阅读
- performance - 两个看似等效的汇编代码之间的性能差异
- git - 如何在 Gitlab 中获取两个 ref 之间的 git diff?
- android - Minix X68-i 加速度计
- python - Django 调试工具栏仅适用于管理界面
- php - 使 WooCommerce 中产品类别的优惠券字段为必填项
- javascript - React Redux 测试失败,因为它无法通过操作获取数据
- c# - Wix 安装程序无法启动服务
- c - 如何从 Mac 制作 Windows CLI
- android - Google 结果编号显示在 Android Studio 的文本视图中
- ruby-on-rails - Savon::SOAPFault: (p448:B2BServiceException) com.uhg.ut.ues.b2b.services.B2BServiceException: 活动 HTTP 会话不存在