如何在 firebase 中为动态键编写 .indexOn?

How to write .indexOn for dynamic keys in firebase?

我的数据设置如下:

Tasks:{
  Group 1:{
    pushid1:{
      date: 18921949021,
      title: "Do something"
    },
    pushid2:{
      date: 18921949021,
      title: "Do something else"
    }
  },
  Group 2:{
    pushid3:{
      date: 18921949021,
      title: "Do another thing"
    }
  }
}

我按日期引用它,所以我只获取特定时间后完成的任务。

var now = Date.now();
var taskRef = new Firebase(FB + "/tasks/" + thisGroup);
taskRef.orderByChild('date').startAt(now).on("child_added", function(snap){
  console.log(snap.val());
});

一切正常,对于每个组,我都会收到一条警告消息,内容如下:

FIREBASE WARNING: Using an unspecified index.  Consider adding ".indexOn": "date" at tasks/Group 1 to your security rules for better performance

如何将其添加到我的安全规则中?我无法为用户创建的每个组添加一个,是否有某种类型的通配符条目?

我猜你正在寻找:

{
  ".read": true,
  ".write": true,
  "rules": {
    "Tasks": {
      "$groupid": {
        ".indexOn": "date"
      }
    }
  }
}

Firebase 文档通常是一本很好的读物。在 security guide 中花一个小时或更少的时间,将确保您更好地理解这个主题和许多其他主题。

我使用了 Frank 的答案,但它给我错误,

Error saving rules - Line 1: Expected 'rules' property.

所以,这对我有用:

{
  "rules": {
  ".read": true,
  ".write": true,
    "Tasks": {
      "$groupid": {
        ".indexOn": "date"
      }
    }
  }
}

我的数据库规则截图: