Создание правил Firebase для индексации с вложенной древовидной структурой

Я пытаюсь установить индексирование для полей customerNumber и rentalDate в моей базе данных firebase, как показано ниже. Я использую динамические ключи (UUID) для "книжного магазина", "bookId", "customerId".

Каков синтаксис для определения динамических ключей в "Правилах FIREBASE"? Я попытался использовать '$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];

"Ссылка" указывает на

'firebase.io/Bookstores/$bookstore1/BOOK_RENTAL' 

Для загрузки начальных данных я использую 'наблюдающий единый случай OfType':

[query observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot)

И для обновлений я использую 'наблюдайте за событиями':

[query observeEventType:eventType withBlock:^(FDataSnapshot *snapshot)

где eventType - "FEventTypeChildAdded", "FEventTypeChildChanged", "FEventTypeChildRemoved"

0 ответов

Другие вопросы по тегам