【问题标题】:Allow only few devices to access data in firebase on custom rules仅允许少数设备根据自定义规则访问 firebase 中的数据
【发布时间】:2019-09-05 15:11:32
【问题描述】:

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

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

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

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

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

  1. 设备/deviceId/路径
  2. 组/groupId/路径

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

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

【问题讨论】:

    标签: android firebase google-cloud-firestore firebase-authentication firebase-security


    【解决方案1】:

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

    【讨论】:

    • 感谢您的意见。这是否意味着安装了该应用程序的所有设备都应该有一个谷歌帐户?此外,我们的应用程序具有离线模式,可以在没有互联网的情况下使用。数据每天从 firebase 提取一次到设备上,然后在没有内部连接时缓存数据。 Firebase 身份验证可以在没有互联网连接的情况下工作吗?
    • 我更改了我的手机,以便由 Google 提供商在 Firebase 中完成身份验证。我在添加规则时遇到了其他问题:stackoverflow.com/questions/57870178/… 你能看看你有什么想法吗?谢谢
    猜你喜欢
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多