使用嵌套树结构创建用于索引的firebase规则

时间:2016-03-22 02:58:06

标签: ios firebase firebase-security firebase-realtime-database

我正在尝试为我的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'

0 个答案:

没有答案