Firestore添加2个文档的执行时间

时间:2018-12-22 20:47:47

标签: java android google-cloud-firestore

这两个在执行时间方面是否有区别?

collectionReference.add(testObject)
 .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
    @Override
    public void onSuccess(DocumentReference documentReference) {

     collectionReference.add(testObject2);
    }
  })

还有

collectionReference.add(testObject);

collectionReference.add(testObject2);

在第一种情况下,第二个加法将在第一个完成后执行,在第二种情况下会发生相同的事情吗?是否正在查询第二个添加项并且正在等待第一个添加项完成,或者它们正在并行运行?

1 个答案:

答案 0 :(得分:1)

是的,这两者的执行时间会有所不同。

在第一种情况下,您要先等待服务器上的第一次写入,然后再将第二次写入发送到服务器。在图中:

 Client                            Server
   |                                  |
   |---- Send document to write ----->|
   |                                  |
   |                                  |
   |<----- Response from server ------|
   |---- Send document to write ----->|
   |                                  |
   |                                  |
   |<----- Response from server ------|
   |                                  |

在第二种情况下,第二次写操作在第一次写操作发送之后立即发送到服务器。

 Client                            Server
   |                                  |
   |---- Send document to write ----->|
   |---- Send document to write ----->|
   |                                  |
   |                                  |
   |                                  |
   |<----- Response from server ------|
   |<----- Response from server ------|
   |                                  |

这两者之间的性能差异是您与服务器之间的连接延迟。

请注意,这只是理论上的差异,可能还有更多影响性能的因素。