Метод set () Firestore не вставляет документ в коллекцию, если не вызван метод get () ApiFuture <WriteResult> - PullRequest
0 голосов
/ 01 апреля 2020

Я реализую код для вставки документов в Firestore с его Java API.

Это не работает

/**
   * Add a document to firestore database with a custom document id
   * @param collectionName the name of the collection
   * @param documentId unique document id
   * @param dataMap
   */
  public void addDocumentWithCustomDocumentId(String collectionName, String documentId, Map<String, Object> dataMap) {

  db.collection(collectionName).document(documentId).set(dataMap);
  //cannot see document inserted on Firestore console on GCP

}

Это работает, хотя

/**
   * Add a document to firestore database with a custom document id
   * @param collectionName the name of the collection
   * @param documentId unique document id
   * @param dataMap
   */
  public void addDocumentWithCustomDocumentId(String collectionName, String documentId, Map<String, Object> dataMap) {
   ApiFuture<WriteResult> result = 
          db.collection(collectionName).document(documentId).set(dataMap);
   result.get().getUpdateTime();
   //can see document inserted on Firestore console on GCP

}


В чем разница? Зачем звонить result.get().getUpdateTime();?

1 Ответ

0 голосов
/ 01 апреля 2020

Вы должны использовать .get () для вызова, чтобы фактически выполнить его. Вы можете просто заменить свой код на

db.collection(collectionName).document(documentId).set(dataMap).get()

. Вы можете найти несколько примеров в этом репо: https://github.com/GoogleCloudPlatform/java-docs-samples

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...