有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将大量文档写入firestore

我有一个Excel表格,其中包含5列数据,我想将这些数据添加到Firestore集合中

为了做到这一点,我编写了一个脚本来读取Excel并创建5个描述每列的ArrayList

最后,我有5个ArrayList,每个ArrayList中大约有27000个条目

我想在这个集合中创建27000个文档

我如何迭代这些27000项来创建27000个文档

基本上我想做的是:

private void addData2DB(ArrayList<String> titles, ArrayList<String> authors,ArrayList<String> publishers, ArrayList<String> genres, ArrayList<String> pages){

    for (int i = 0;  i < titles.size(); i++) {
        Map<String, Object> data = new HashMap<>();
        data.put("title", titles.get(i));
        data.put("author", authors.get(i));
        data.put("publisher", publishers.get(i));
        data.put("genre", genres.get(i));
        data.put("pages", pages.get(i));

        db.collection("users")
                .add(data)
                .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                    @Override
                    public void onSuccess(DocumentReference documentReference) {
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                    }
                });
    }
    
}

我读到有一个WriteBatch,但它说它最多只支持500次写入

我怎样才能克服这种情况

多谢各位


共 (1) 个答案

  1. # 1 楼答案

    I read there is a WriteBatch but it says it supports only up to 500 writes.

    是的,当前只允许500次写入。您可以一次编写500个文档,并以这种方式继续,直到您将所有27k文档添加到Firebase服务器上。Frank van Puffelen在以下答案中解释了执行这些写入操作的最佳/最快方式: