【发布时间】:2017-03-08 18:29:45
【问题描述】:
使用 Firebase,我如何获取一个节点,其中一些子节点是安全的?
例如...
数据结构:
root: {
clients: {
c1: {
data: {
name: "person1"
}
permissions: {
clientId: "abc"
trainerId: "123"
}
}
c2: {
data: {
name: "person2"
}
permissions: {
clientId: "def"
trainerId: "123"
}
}
}
}
安全性:
"clients": {
"$clientKey": {
"data": {
".read": "data.parent().child('permissions').child('clientId').val() == auth.token.name || data.parent().child('permissions').child('trainerId').val() == auth.uid",
".write": "data.parent().child('permissions').child('trainerId').val() == auth.uid"
}
}
}
所以我想要实现的是以下目标;客户端可以读取自己的数据。培训师可以读写他们的任何客户。如果您的id 在permissions 中,那么您可以按指定读/写。
但是,我现在的问题变成了,如果作为一名培训师,我想查看我有权阅读的所有客户的列表。
如何获取客户?尝试仅对 clients 进行数据读取/获取失败。
【问题讨论】:
-
这些权限在模拟器中真的对你有用吗?我无法让他们工作。
-
不,不适合我。我正在关注一个示例,如下所示:firebase.googleblog.com/2016/10/… 我知道它不是一个适合所有人的答案,我问的原因是因为我无法找到一个可行的解决方案,或者不知道它是如何工作的。
标签: ios objective-c firebase firebase-realtime-database firebase-security