首页 > 解决方案 > 仅允许少数设备根据自定义规则访问 firebase 中的数据

问题描述

我有一个 android Kiosk 应用程序。我们手动将应用程序安装到设备上。数据是从 Firebase 中获取的。我想在 Firebase 中设置规则,以便只有安装了我的应用程序的设备才能访问数据。

每个设备都有一个生成的 deviceId,如下所示

String thisDeviceId = Settings.Secure.getString(MyApplication.getAppContext().getContentResolver(),
                Settings.Secure.ANDROID_ID);

并且在注册设备时,每个设备都会被赋予一个组 ID。

现有的所有数据都属于这两个类别

  1. 设备/设备 ID/路径
  2. 组/组 ID/路径

我想在 Firestore 中设置以下规则: 设备 ID 为“abc”的设备只能访问路径(读写)设备/abc/path 组“cde”的设备只能访问路径(读写)组/cde/路径

我尝试阅读文档,但无法理解任何符合我要求的文档。知道如何实现吗?任何想法都会非常有帮助。

标签: androidfirebasegoogle-cloud-firestorefirebase-authenticationfirebase-security

解决方案


Cloud Firestore 安全规则不支持使用某些设备 ID 来限制访问的想法。此 ID 很容易被恶意客户端欺骗。限制访问的唯一可能方法是使用 Firebase 身份验证的每个用户。


推荐阅读