【问题标题】:Restrict write access in Firebase Rules to Cloud Functions [closed]将 Firebase 规则中的写入权限限制为 Cloud Functions [关闭]
【发布时间】:2017-04-26 19:25:21
【问题描述】:

我能否获取 Firebase 函数(数据库触发器)的 ID 以用于 Firebase 规则?我只需要允许 Firebase 函数写入数据库。

更新:

为了澄清,我正在使用触发数据库 Firebase 函数,我只想允许该函数写入数据库,但允许用户读取。我尝试了这种方法Allowing write access only to Cloud Functions for Firebase,但收到错误The default Firebase app already exists.。但是,此链接适用于 Cloud Functions 而不是 Firebase 功能,我找不到任何其他相关问题。

【问题讨论】:

  • 当您说 id 时,您的意思是父节点键吗?还是用户uid?还是别的什么?
  • 嗨 Jay,我的意思是函数的 ID(如果存在)。我已经在下面添加了答案,不需要检查函数 ID,只需使用 adminRef 代替 ref,我的意思是,如果你使用 'ref' 你可以拒​​绝每个人的规则并且函数不能写,但是如果使用“adminRef”,则只有您的函数会写入或读取。非常有用。

标签: firebase firebase-realtime-database


【解决方案1】:

似乎对 Cloud Functions for Firebase 和 Google Cloud Functions 存在误解(错误消息是因为在 Cloud Function for Firebase 中使用了 Google Cloud Functions 的代码),但无论如何,这个问题的答案是您可以在将数据写入 Firebase 数据库的函数代码中使用 adminRef 代替 ref:

event.data.adminRef 而不是event.data.ref

这将为您提供完整的读写访问权限,而不是最终用户访问权限(请注意,您还必须注意在规则中指明拒绝所有人)。

更新:好像 adminFef 在 Firebase 上被 ref due changes 替换了,所以请按照相应的示例进行替换。

【讨论】:

  • adminRef 链接已失效。
猜你喜欢
  • 2020-09-26
  • 2017-08-14
  • 2021-06-13
  • 2021-04-07
  • 1970-01-01
  • 2021-06-09
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多