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,看看你的案例有什么不同吗:另外:如果我复制/粘贴了你的索引,警告就会消失。