Javascript Firebase数据库索引问题

Javascript Firebase数据库索引问题,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我的客户数据库如下所示: { "customers": { "9115625853": { "address": "16-37-4/3, Innespeta, Rajahmundry 533101", "adhaar": "1111-2222-3333", "currentPackage": { "activation": "2016-11-22",

我的客户数据库如下所示:

{
    "customers": {
        "9115625853": {
            "address": "16-37-4/3, Innespeta, Rajahmundry 533101",
            "adhaar": "1111-2222-3333",
            "currentPackage": {
                "activation": "2016-11-22",
                "dataConsumed": 5905580032,
                "dataTotal": 21474836480,
                "expiry": "2016-12-22",
                "packageName": "5MB-20GB",
                "speedDown": "5 Mbps",
                "speedUp": "5 Mbps"
            },
            "email": "sureshk@gmail.com",
            "mobileno": "9115625853",
            "name": "Suresh Kumar P",
            "registered": "2016-11-22"
        },
        "7032906292": {
            "address": "46-17-24, Danavaipeta, Rajahmundry 533103",
            "adhaar": "5555-2342-3633",
            "currentPackage": {
                "activation": "2016-11-12",
                "dataConsumed": 18253611008,
                "dataTotal": 21474836480,
                "expiry": "2016-12-12",
                "packageName": "5MB-20GB",
                "speedDown": "5 Mbps",
                "speedUp": "5 Mbps"
            },
            "email": "lakshman@laurel.solutions",
            "mobileno": "7032906292",
            "name": "Lakshman Rao Pilaka",
            "registered": "2016-11-12"
        },
        "9165263347": {
            "address": "722 Junius Street, Grazierville, Indiana, 7463",
            "adhaar": "3935-1768-7293",
            "email": "mannray@biospan.com",
            "name": "Mann Ray",
            "phone": 9165263347,
            "registered": "2016-09-04"
        }
    }
}
我希望在将子项添加到未应用
currentPackage
的客户数据库时触发事件(即当添加像
9165263347-Mann Ray
这样的客户时)

我写过这样的代码

firebase.database().ref('customers/')
  .orderByChild('currentPackage')
  .equalTo(null)
  .once('child_added')
  .then(function(snapshot) {

       // My Code

 });
我犯了一个错误

未捕获(承诺中)错误:没有为currentPackage定义索引(…)

我的Firebase规则如下

   {
    "rules": {
        ".read": true,
        ".write": true,
        "packages": {
            ".indexOn": "active"
        },
        "customers": {
            ".indexOn": "currentPackage"
        }
    }
}
我确信,规则定义中存在错误,但不知何故,我无法克服它

请帮忙


谢谢。

除了与once()无关的用法之外,这里的一切看起来都很好,这可能不是您真正想要的(您正在尝试将实时事件流转换为CRUD操作)。因此,您的代码/设置中的某些内容必须与您在此处发布的内容不匹配。我只是用您的代码+JSON创建了一个jsbin,并得到一个警告,但没有错误。你可以看看我的jsbin,看看你的案例有什么不同:另外:如果我复制/粘贴了你的索引,警告就会消失。这里的一切看起来都很好,除了与once()无关的用法,这可能不是你真正想要的(你试图将实时事件流变成CRUD操作)。因此,您的代码/设置中的某些内容必须与您在此处发布的内容不匹配。我只是用您的代码+JSON创建了一个jsbin,并得到一个警告,但没有错误。你能看看我的jsbin,看看你的案例有什么不同吗:另外:如果我复制/粘贴了你的索引,警告就会消失。