Firebase 实时数据库中有关身份验证的信息

Posted

技术标签:

【中文标题】Firebase 实时数据库中有关身份验证的信息【英文标题】:Info about Auth in Firebase Realtime Database 【发布时间】:2020-02-11 19:03:33 【问题描述】:

大家好,这些天来,我用 Flutter 制作了我的第一个应用程序,它从实时 Firebase 数据库中读取数据列表(汽车信息,因为它是从主网站读取的汽车目录)。 此时数据库处于测试模式,因此读取和写入设置为 true。 我希望下载应用程序的人无需登录即可读取所有汽车列表,所以在这种情况下,我必须将读取属性保留为真值,并将写入属性保留为假值? 或者还有另一种更好的方法来授权人们在不登录的情况下阅读列表,可能使用密钥或其他我不知道的方式。 非常感谢看完留言的各位☺️

【问题讨论】:

这个问题有点宽泛,因为应用程序通常有许多包含不同类型信息的节点。您可能需要包含一个结构示例,以便我们了解您想要哪些数据可用。要获取您的 Firebase 结构,请使用 Firebase 控制台->导出 JSON,然后复制并粘贴您的结构的 sn-p。 【参考方案1】:

在 Firebase 控制台中为您的数据库找到 rules 选项卡并设置:


  "rules": 
    ".read": true,
    ".write": "auth != null"
  

在这种情况下,任何人都可以读取,但只有授权用户才能写入

这个标签:

【讨论】:

@hobbit 这是一个很好的答案,但这将允许所有用户在 Firebase 中读取 所有 数据。例如,他们可以读取汽车成本、原车主是谁或 VIN 号码——您可能不希望任何人都能获得这些信息。根据您的用例,最好只“锁定” /car_list 节点而不是所有节点。 @Jay 首先感谢您的回答和建议。用户可以读取数据库的所有字段是没有问题的,因为没有什么秘密,我在数据库中只加载了我需要的字段,所以我认为安德烈给我的配置就足够了。

以上是关于Firebase 实时数据库中有关身份验证的信息的主要内容,如果未能解决你的问题,请参考以下文章

多个用户的 Firebase 实时数据库身份验证

Firebase 安全性和电话身份验证

如何将 Firebase 身份验证链接到实时数据库?

为啥注册用户后 Firebase 实时数据库用户 ID 与 Firebase 身份验证 UID 不匹配?

用于 Firebase 实时数据库/Firebase 身份验证的 Android 唯一密钥

处理 Firebase 身份验证和数据库实时之间事务的最佳方式