Как запросить коллекцию Firestore, используя свойство с шага глубже с Kotlin? [Дубликат]

Хотя я не совсем уверен, что вы хотите сделать, вы, вероятно, ищете sprintf .

Это будет:

$value = sprintf( '%08d', 1234567 );

0
задан Alex Mamo 13 July 2018 в 13:47
поделиться

1 ответ

Короткий ответ: вы не можете достичь этого в Firestore. Вы не можете запрашивать свою базу данных для всех автомобилей, независимо от того, какой транспорт содержит их.

Но в таких случаях есть временное решение, в котором вы должны немного изменить структуру базы данных, создав новый верхний уровень коллекция с именем cars, в которую вы должны добавить все ваши car объекты. Будь в каждом car объекте, вы также должны добавить желаемый transportation в качестве свойства. Таким образом, вы сможете запросить базу данных в соответствии с вашими потребностями.

Структура вашей базы данных должна выглядеть так:

Firestore-root
   |
   --- cars (collection)
        |
        --- carId (document)
              |
              --- transportation: "Private Taxi"
              |
              --- //other car details
2
ответ дан Alex Mamo 17 August 2018 в 12:42
поделиться
  • 1
    Это означает, что я буду дублировать данные. Это не то, что я хочу. – Johans Bormman 13 July 2018 в 14:20
  • 2
    firebaser здесь Мы знаем, что запрос по нескольким (под) коллекциям в том виде, который вы предлагаете, приведет к упрощению кода и уменьшению дублирования данных. Мы планируем добавить его, но, как обычно: никаких обещаний и, безусловно, никаких сроков. Дублирование данных, как описывает Алекс, в настоящее время является единственным способом реализации этого прецедента. – Frank van Puffelen 13 July 2018 в 14:30
  • 3
    @FrankvanPuffelen Спасибо, Пуф! – Alex Mamo 13 July 2018 в 14:45
  • 4
    @JohansBormman В дополнение к комментарию Фрэнка я также рекомендую вам посмотреть это видео, Денормализация в норме с базой данных Firebase . Это для базы данных Firebase в режиме реального времени, но те же принципы применяются в Cloud Firestore. – Alex Mamo 13 July 2018 в 14:46
  • 5
    @FrankvanPuffelen Да, будет лучше писать меньше кода :) Спасибо! – Johans Bormman 13 July 2018 в 15:02