【发布时间】:2019-08-31 08:35:06
【问题描述】:
我正在尝试通过按照控制台日志中的建议创建索引来提高 Firebase 实时数据库的性能。大多数建议很容易遵循,但不是全部。
我现有的规则:
"notes": {
".indexOn": ["data/title", "access/author"],
".read": "
auth.uid !== null
",
"$note_id": {
".write": "
(!data.exists() && auth.uid !== null) ||
(
data.child('access').child('author').val() === auth.uid
||
data.child('access/members').child(auth.uid).exists()
)
",
"data": {
".read": "
data.parent().child('access').child('author').val() === auth.uid ||
data.parent().child('access/members').child(auth.uid).exists()
",
".write": "
data.parent().child('access').child('author').val() === auth.uid ||
data.parent().child('access/members').child(auth.uid).exists()
",
"access" : {
".read" : "
(auth.uid !== null) &&
(
data.child('author').val() === auth.uid
||
data.child('members').child(auth.uid).exists()
)
",
"members" :{
".write" : "
(!data.exists() && auth.uid !== null) ||
data.parent().child('author').val() === auth.uid ||
data.parent().child(auth.uid).exists()
"
}
}
}
},
一些建议适用于以用户 uid 结尾的位置 - 类似于以下控制台日志:
FIREBASE 警告:使用未指定的索引。
考虑在 /notes 添加 ".indexOn": "access/members/3weT1tYhG456HH0CuC45Muc44ax6" 符合您的安全规则以获得更好的性能
是否可以在 Firebase 实时数据库中添加此索引规则 - 考虑到位置位置以用户 uid 字符串结尾?
【问题讨论】:
标签: firebase firebase-realtime-database