【发布时间】:2017-08-16 10:02:18
【问题描述】:
我正在尝试确定是否可以从调用 firebase https 云功能的客户端检查身份验证对象以完成以下任务:
1) 只允许经过验证的电子邮件用户调用 https 端点,否则返回 403。
2) 以某种方式访问调用函数的客户端的 uid,以便在数据库中设置像 characters/:uid 这样的节点。
这样做的原因是禁止重复字符。我可以在 req.body 中手动传递 uid,但这意味着任何人都可以通过发送任何类型的 uid 作为 req.body 有效负载来摆弄它并创建 100 个不同的字符。
我能想到的唯一解决方法就是将此逻辑更改为数据库触发器,即客户端写入数据库void/characters/uid 节点(数据库规则执行整个验证)然后函数监听数据库中的此更改,处理数据并推送它给characters/uid
但这意味着需要额外的逻辑,例如在完成后删除节点,另外我不确定如何将错误或成功响应发送回客户端,就像使用 https 函数一样,我们可以 res.send(200) 或发送回错误。
【问题讨论】:
标签: javascript node.js firebase firebase-realtime-database google-cloud-functions