例如:我希望从00:00 AM到05:00 AM或在星期六或星期日的任何时间禁用数据库。
我不想允许用户与数据库进行交互。 (写或听更新)
我可以使用firebase结构吗?
答案 0 :(得分:1)
您可以使用数据库规则来实现其中的一部分,另一部分则需要cron-job / scheduled任务来切换数据库中的记录。
使用Firebase螺栓规则(Read More),您可以创建函数isOnline()
function isOnline() {
return prior(root.config.isOnline) == true
}
该规则将检查/config/isOnline: boolean
,并且如果您希望用户true
和write
阻止编写,则期望false
。
在所有数据库规则中,您都需要引用此函数。
path /somePath {
write() { isOnline() }
}
您可以将它们与其他规则(例如用户验证)结合起来
function isUser(uid) {
return auth != null && uid == auth.uid
}
path /someOtherPath {
path /{uid} {
write() { isUser(uid) && isOnline()
}
}
然后,您可以设置cron-job / scheduled任务,以在周六/周日的00:00 AM和05:00 AM更新/config/isOnline
属性。
在周六和周日@ 00:00 AM设置/config/isOnline = false
。
在星期六和星期日@ 05:00 AM设置/config/isOnline = true
。