Firebase RTDB:拆分数据访问的最佳方法

问题描述 投票:0回答:1

我有一个白标 Android 移动应用程序,可以为大约 30 个客户端构建,具有自己的功能(所有这些应用程序都有一个唯一的应用程序 ID)。所有这些应用程序都使用单个 RTDB 连接到 Firebase 项目。数据库中的客户端数据按客户端名称命名的根节点进行分割。

问题是如何限制客户端在未经身份验证的情况下访问数据,但仅使用应用程序 ID?也许将客户的数据拆分到单独的数据库中有意义?单个项目可以创建多少个RTDB?

android firebase-realtime-database firebase-authentication
1个回答
0
投票

所有这些应用程序都使用单个 RTDB 连接到 Firebase 项目。数据库中的客户端数据由以客户端名称命名的根节点分割。

据我了解,您有一个 Firebase 项目,其中所有 30 个客户端都使用相同的实时数据库实例,并且每个客户端都由一个节点表示,该节点是您的根引用的子节点。如果我理解正确的话,我可以说这是一种非常常见的方法。

问题是如何限制客户端未经身份验证但仅使用 app-ids 的数据访问?

不幸的是,如果没有 Firebase 身份验证,您无能为力。如果您决定不使用 Firebase 身份验证,则意味着知道您的项目 ID 和应用 ID 的任何人都可以从您的数据库读取/写入。这显然很糟糕,因为恶意用户可以利用它。

也许将客户的数据拆分到单独的数据库中有意义?

这也是一种广泛使用的解决方案,其中每个用户都有自己的实时数据库实例。但这并不意味着您不必实施 Firebase 身份验证并使用 Firebase 实时数据库安全规则来保护数据库。

单个项目可以创建多少个RTDB?

根据实时数据库的官方文档关于限制和配额

您最多可以在同一个 Firebase 项目中创建 1,000 个 数据库实例。

但是如果您使用Blaze定价计划。因此,如果您只有 30 个客户,则无需担心。

© www.soinside.com 2019 - 2024. All rights reserved.