【问题标题】:How to enable access of firestore data to my nativescript app only?如何仅允许访问我的 nativescript 应用程序的 firestore 数据?
【发布时间】:2018-12-22 12:54:15
【问题描述】:

我正在使用 Nativesript + angular 开发 android/ios 应用程序。我想在我的应用程序中显示ListView。对于那个ListView,我想使用 Firebase 的 Firestore 数据库产品作为后端数据提供者。 我想要的是: 1. 我不希望用户登录或通过身份验证才能使用该应用程序。 2. 我希望来自 firebase 数据库的数据只能由我的应用程序使用。如果其他一些应用程序或匿名用户使用了这些数据,我有什么办法可以阻止它们吗?

我尝试过像

这样的规则
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read: if true;
    }
  }
}

但它允许每个人访问数据。

是否有其他提供相同功能的数据提供者?

【问题讨论】:

    标签: firebase google-cloud-firestore nativescript firebase-security nativescript-angular


    【解决方案1】:

    更新(2021 年 5 月):

    借助名为 Firebase App Check 的新功能,现在实际上可以将对 Callable Cloud Functions 的调用限制为仅来自在 Firebase 项目中注册的 iOS、Android 和 Web 应用程序的调用。

    您通常希望将此与我前面/下面描述的基于用户身份验证的安全性结合起来,这样您就有另一个屏障来抵御确实使用您的应用的滥用用户。

    通常仍建议基于对用户进行身份验证(允许您识别每个单独的用户)来控制访问,然后确保他们只能访问他们获得授权的数据(在安全规则中)。

    如果您不希望您的用户必须登录,您可以使用anonymous authentication。虽然这不会为您提供有关用户的任何信息,但您仍然可以在安全规则中识别他们,从而根据他们所做的事情来限制他们的访问。

    通过将 App Check 与安全规则相结合,您可以对每个人都可以访问的数据进行广泛的保护和细粒度的控制。

    【讨论】:

    • 感谢您的回答,我找到了一种可以使用代理服务的方法。通过使用代理服务,我们不会在客户端存储与 api 相关的属性,而是将这些属性存储在代理服务端。我真的不确定我们是否能做到这一点。你同意这个过程吗?
    • 这意味着您现在需要限制对代理的访问。当然可以,但更常见的方法是使用 Firebase 身份验证并使用规则进行安全访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2020-09-09
    相关资源
    最近更新 更多