除非调用 ApiFuture<WriteResult> 的 get() 方法,否则 Firestore set() 方法不会将文档插入集合
Firestore set() method does not insert document into collection unless get() method of ApiFuture<WriteResult> is called
我正在实现代码以将文档插入到带有 Java API 的 firestore 中。
这行不通
/**
* 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();
?
您必须在调用中使用 .get() 才能真正 运行 它。您可以简单地将您的代码替换为
db.collection(collectionName).document(documentId).set(dataMap).get()
您可以在此存储库中找到一些示例:https://github.com/GoogleCloudPlatform/java-docs-samples
我正在实现代码以将文档插入到带有 Java API 的 firestore 中。
这行不通
/**
* 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();
?
您必须在调用中使用 .get() 才能真正 运行 它。您可以简单地将您的代码替换为
db.collection(collectionName).document(documentId).set(dataMap).get()
您可以在此存储库中找到一些示例:https://github.com/GoogleCloudPlatform/java-docs-samples