【问题标题】:Can I prevent authenticated users viewing my entire firebase database JSON file?我可以阻止经过身份验证的用户查看我的整个 Firebase 数据库 JSON 文件吗?
【发布时间】:2020-01-22 02:16:12
【问题描述】:

我创建了一个包含 5000 多名服务技术人员的 json 文件,并且我正在开发一个网站,人们可以在该网站上根据位置搜索特定服务。我是firebase的新手,所以假设我将以下JSON存储在firebase数据库中,这意味着任何经过身份验证的用户都可以通过输入firebase url.json来查看所有数据?如果整个数据都可以直接查看并在一分钟内复制整个数据,那将是不公平的。有解决办法吗?

    [
    {
        "name": "John",
        "Location": "Montreal",
        "title": "Electrician",
        "rating": "3",
        "phone": "5141234567"

    },
    {
        "name": "Paul",
        "Location": "Toronto",
        "title": "Plumber",
        "rating": "1",
        "phone": "5142234567"

    },
    {
        "name": “Rita”,
        "Location": "New Foundland”,
        "title": "Mechanic",
        "rating": "4",
        "phone": “5143234567”
    }
]

【问题讨论】:

    标签: json firebase firebase-realtime-database


    【解决方案1】:

    一旦您想允许经过身份验证的用户使用客户端 SDK(Web、Android、iOS)在您的实时数据库中进行搜索,您确实需要让他们访问整个技术树(通过适当的安全规则)。

    一种可能的解决方法是使用Cloud Function 来查询数据库。您可以开发一个Callable Cloud Function,它从应用前端接收搜索参数(例如地理区域),然后根据这些参数查询(即搜索)数据库,最后发回查询结果。

    由于 Cloud Functions 以管理权限运行,它将完全绕过安全规则。因此,您可以设置安全规则,使最终用户无法浏览/获取您的整个数据库。

    请注意,使用此方法有一些缺点,特别是在定价、实时方面、本地缓存等方面。以下article 详细描述了直接查询 Firebase 数据库或使用 Cloud Functions 查询之间的区别。

    【讨论】:

    • @tejiriafe 嗨,您有机会查看建议的答案吗?
    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 2019-02-14
    • 2013-02-21
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 2021-07-14
    • 2022-11-21
    相关资源
    最近更新 更多