我可以在一段时间内停用Firebase数据库吗?

时间:2018-10-03 17:00:46

标签: firebase firebase-realtime-database

例如:我希望从00:00 AM到05:00 AM或在星期六或星期日的任何时间禁用数据库。

我不想允许用户与数据库进行交互。 (写或听更新)

我可以使用firebase结构吗?

1 个答案:

答案 0 :(得分:1)

您可以使用数据库规则来实现其中的一部分,另一部分则需要cron-job / scheduled任务来切换数据库中的记录。

使用Firebase螺栓规则(Read More),您可以创建函数isOnline()

function isOnline() {
  return prior(root.config.isOnline) == true
}

该规则将检查/config/isOnline: boolean,并且如果您希望用户truewrite阻止编写,则期望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