Лимит документов Google Cloud Firestore - PullRequest
0 голосов
/ 16 мая 2018

Я работал с Google Cloud Firestore. Я собираюсь импортировать 13000+ записей из CSV в серверную часть пожарного депо. Я буду использовать эту коллекцию для поиска и автозаполнения целей.

Мне любопытно и беспокоиться, если это хорошая идея. Кроме того, я ищу несколько предложений о том, какие методы я должен использовать, чтобы сделать эти данные максимально эффективными. Я работаю с Angular 5 и использую AngularFire2 для соединения с Firestore.

Сам документ очень маленький, например:

{
  address: {
    state: "NSW"
    street: "19 XYZ Road"
    suburb: "Darling Point"
  },
  user: {
    name: "ABC",
    company: "Property Management Company"
  }
  file_no: "AB996"
}

Большая часть поиска будет основываться на file_no свойстве документа.

Обновление

Я только что импортировал все записи 13k + в Firestore. Это действительно эффективно. Однако у меня есть одна проблема. После импорта записей на консоли Firestore появляется сообщение о том, что мой дневной лимит для операций чтения достигнут (0,05 из 0,05 миллиона операций) . Я просто записал данные и отобразил эти записи в таблице данных. Я использовал следующий запрос:

this.propertyService
      .getSnapshotChanges()
      .subscribe(properties => {
        this.properties = properties;
        this.loadingIndicator = false;
      });


getSnapshotChanges(): Observable < any > {
  return this.afs.collection(this.propertiesCollection).snapshotChanges()
    .map((actions) => {
      return actions.map((snapshot) => {
        const data = snapshot.payload.doc.data();
        data.id = snapshot.payload.doc.id;
        return data;
      });
    });
}

Как из-за этого мой лимит чтения превышает?

1 Ответ

0 голосов
/ 16 мая 2018

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

Допустим, вы добавили 130 документов, и (для примера) требуется 1 секунда, чтобы извлечь из него 10 документов.Это производительность, которую вы получите независимо от того, сколько документов в коллекции.Таким образом, для 1300 документов это также займет 1 секунду, для 13K - 1 секунда, а для 13M - 1 секунда.

Проблема, с которой сталкиваются другие разработчики, заключается в том, чтобы привести свои варианты использования в соответствиев рамках API Firestore.Например: единственный способ поиска строк - это так называемое совпадение префиксов, полнотекстовый поиск не поддерживается.Это означает, что вы можете искать Prop* и находить Property Management Company, но не искать *Man*, чтобы найти его.

...