我可以使用事务和批处理写入来只读吗?

时间:2019-09-23 14:00:17

标签: firebase google-cloud-firestore

我是否可以通过类似于Transactions and batched writes的一种连接方式从firestore中读取多个数据,但没有写入。

例如:

我通过Google按钮登录,玩家名称为Player1

第一次联系:我想读最多10位拥有钻石的球员。

第二次连接:我想阅读Diamond Player1。

我可以在一个连接中混用第一连接和第二连接。

因为我想要第一个连接失败,所以取消第二个连接。或者,如果第一个连接成功连接而第二个连接失败,那么取消第一个连接等...,希望您理解我的意思。

1 个答案:

答案 0 :(得分:0)

事务和批处理写是写操作。读取操作没有相似之处,也不需要。

如果您想使后续读取失败,则应该:

  • 在上一次读取完成之后,依次开始每个读取。
  • 同时启动所有读取,但是检查每个完成的读取操作的状态。仅在所有读取操作成功完成后才能继续。

通过阅读您的问题,听起来您想对排名前10位的玩家进行客户端信息的客户端加入。通常会导致11次读取。

  • 获取前10个得分的查询,其中包括玩家的UID。
  • 读取10个独立文档以获取每个顶级玩家的个人资料。

在这种情况下,您可以例如保留一个计数器来跟踪您已经成功读取的播放器配置文件的数量。一旦该计数器达到10,您便知道您拥有所有球员资料,并可以开始进行随后的任何操作。如果您希望在加载任何播放器配置文件失败后使整个操作失败,那么您也需要一个单独的标志。