Swift 如何限制管理员对firebase firestore数据库的读取访问?

Swift 如何限制管理员对firebase firestore数据库的读取访问?,swift,firebase,google-cloud-firestore,privacy,firebase-security,Swift,Firebase,Google Cloud Firestore,Privacy,Firebase Security,我目前正在为我的iOS应用程序使用Cloud Firestore,该应用程序允许用户将其费用存储到数据库中,但为了保护隐私,是否有任何方法可以确保我无法读取他们输入到数据库中的数据。当查询和所有操作仍在运行时,我或任何管理员都无法看到用户在其数据库中输入了什么 不存在这样的功能。通过控制台和管理员SDK进行管理员访问,可以随时读取所有集合和文档。正如@Frank van Puffelen建议的那样: 通过加密使数据模糊,将防止任何不需要的眼睛查看任何信息。这将增加您的工作负载,因为您需要在应用程

我目前正在为我的iOS应用程序使用Cloud Firestore,该应用程序允许用户将其费用存储到数据库中,但为了保护隐私,是否有任何方法可以确保我无法读取他们输入到数据库中的数据。当查询和所有操作仍在运行时,我或任何管理员都无法看到用户在其数据库中输入了什么

不存在这样的功能。通过控制台和管理员SDK进行管理员访问,可以随时读取所有集合和文档。

正如@Frank van Puffelen建议的那样:

通过加密使数据模糊,将防止任何不需要的眼睛查看任何信息。这将增加您的工作负载,因为您需要在应用程序的任意一端(客户端和服务器)执行加密和解密

我相信,您可以利用firebase的云代码,最大限度地减少在设备上执行的代码量,但我从未尝试过,因此无法确认

对于加密密钥,您有几个选项:

  • 用户密码:这是确保加密而不向任何管理员透露密钥的一种方法,因为firebase中的密码已经从任何查看器中模糊了。唯一的问题是用户将被锁定在密码中,因为更改密码将阻止解密
  • 本地存储:您可以将密钥本地存储在设备上,这意味着用户可以在首次启动应用程序时输入密钥或自动生成密钥。然后将其存储在应用程序的
    默认键
    存储中,并在需要时检索。虽然我认为这是最安全的,但这意味着你的应用程序不能跨iCloud设备使用,因为密钥将存储在本地
  • 最后是
    CloudKit
    ,它允许您在云中存储数据。这是私有的,并且只能由用户的云设备访问
我意识到在这个例子中没有代码,我现在不在我的办公桌上,对此我很抱歉,如果其他人想用一些代码例子进行编辑,我将不胜感激


我希望这能有所帮助。

就像道格说的,我不相信这个功能存在。我唯一能想到的就是使用一些编码。这将增加您的工作负载,但可能会混淆输入,因此数据无法公开读取。保罗:这是一个好主意:使用只有客户端知道的密钥加密值,以防止中间的任何人(包括数据库管理员)读取该值。你能把它作为答案贴出来吗?