Firestore get() - >发送自定义值以在读取安全规则的get()中使用?

时间:2018-04-12 14:35:29

标签: javascript firebase web-applications google-cloud-firestore

我想发送一个设备ID来验证读取请求,但如果它不是请求路径的一部分,如何传递它?

当我需要的信息在请求路径中时,我可以使用此表单:

match /apps-data/{app} {
  allow read: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.subscriptions[app] == true
}

但是如何使用自定义值,例如device

if exists(get(/databases/$(database)/documents/users/$(request.auth.uid)).data.devices[device])

是否有可能,还有另一种方法可以实现这一目标吗?谢谢!

1 个答案:

答案 0 :(得分:0)

在get()期间,您无法传递可在安全规则中引用的自定义数据。

即使id在文档的路径中,您也应该意识到这本身就是不安全的,因为受感染的客户端可能会在请求时伪造该数据。