【问题标题】:Firebase: Customized authenication for each application in the same projectFirebase:为同一项目中的每个应用程序自定义身份验证
【发布时间】:2017-03-04 10:10:49
【问题描述】:

我的问题是我的项目有 2 个应用程序。一个应用程序仅在我们已知的特定移动设备中运行,它无需身份验证即可与 firebase 交互。另一个在许多移动设备上运行,它必须登录到 Firebase 才能相互通信。

那么,我想要做的是如何在 firebase 中配置数据库规则到 2 个应用程序可以使用相同的数据库?非常感谢大家!为我糟糕的英语道歉。

【问题讨论】:

  • 在 firebase 数据库中设置该设备的唯一设备 ID 并授予该 ID 权限。
  • 感谢您的建议。但我仍然找不到在 firebase 数据库中设置该设备的唯一设备 ID 的方法。你能帮帮我吗?我正在为我的期末论文做那个项目。非常感谢

标签: android ios firebase


【解决方案1】:

您无法保护数据库访问以允许特定应用或特定设备。见How to prevent other access to my firebase

但是,如果您使用 Firebase 身份验证,则可以轻松地将设备映射为属于特定用户。如果您不想要求用户登录,您甚至可以使用匿名身份验证。使用 Firebase 身份验证,每个用户都有一个唯一的用户 ID(Firebase 术语中的 UID)。当您知道用户的 UID 时,您可以根据该 UID 保护对数据库的访问。

最近一个项目的例子:

{
  "rules": {
    ".read": true,
    ".write": "auth != null && 
               root.child('config/whitelist').child(auth.uid).exists()"
  }
}

所以在这里,如果登录用户的 UID 存在于节点 /config/whitelist 下,我们允许写入。例如

config
   whitelist
     "jn0BrHQqUEYSjqvqfqzbJTMOlZ82": true
     "ytEtWqOfLkRk3OUjTKBtZnTehZc2" true

【讨论】:

    猜你喜欢
    • 2020-04-01
    • 2022-12-10
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2016-07-09
    相关资源
    最近更新 更多