我正在尝试为我的firebase数据库中的'customerNumber'和'rentalDate'字段设置索引,如下所示。我正在为'bookstore','bookId','customerId'使用动态密钥(UUID)。
在'FIREBASE RULES'下定义动态密钥的语法是什么?我在查看另一个堆栈溢出帖后尝试使用'$ xxxx',但我不确定它是否正确。
firebase文档很好,如果它们为带有动态键的嵌套结构提供了更多示例,那将会更有帮助。
"BookStores":
{
"$bookStore1":
{
"BOOKS_RENTAL":
{
"$book1":
{
"RENTAL_INFO":
{
"rentalDate":"1121212.121212"
}
}
"$book2":{}
"$book3":{}
}
"CUSTOMERS":
{
"$customerId":
{
"CUSTOMER_INFO":
{
"customerNumber":"650-123-4567"
}
}
}
}
"$bookStore2":
{
}
"$bookStore3":
{
}
}
我的规则设置如下。我需要在'customerNumber'和'rentalDate'
上编制索引{
"rules":
{
".read": true,
".write": true,
"BookStores":
{
"$bookStoreId":
{
"BOOK_RENTAL":
{
"$bookId":
{
".indexOn":"RENTAL_INFO/rentalDate"
}
}
"CUSTOMERS":
{
"$customerId":
{
".indexOn":"CUSTOMER_INFO/customerNumber"
}
}
}
}
}
}
但是我仍然在Xcode中收到警告。有什么明显我错过或做错了吗?
更新:
我在日期范围内查询rentalDate:
FQuery* query = [[[ref queryOrderedByChild:@"RENTAL_INFO/rentalDate"] queryStartingAtValue:startDateQueryString] queryEndingAtValue:endDateQueryString];
'ref'指向
'firebase.io/Bookstores/$bookstore1/BOOK_RENTAL'
对于初始数据下载,我使用'observeSingleEventOfType':
[query observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot)
对于更新我正在使用'observeEventType':
[query observeEventType:eventType withBlock:^(FDataSnapshot *snapshot)
其中eventType为'FEventTypeChildAdded','FEventTypeChildChanged','FEventTypeChildRemoved'