如何创建需要find目标文档的Firestore事务

我正在寻找一种方式来创建一个firestore事务,我从查询中find一个文档,然后在一个事务中修改这个文档。

这些线(科特林)的东西:

firestore.runTransaction { transaction -> val snapshot = transaction.get(db.collection("document") .whereEqualTo("someField", null) .orderBy("creationDate", ASCENDING) .limit(1L)) val myObject = snapshot.toObject(MyObject::class.java) myObject.someFiled = "123" transaction.set(snapshot.reference, myObject) } 

这里的问题是.limit(1)方法返回的查询不是一个DocumentReference,它是事务接受的唯一types。 所以我的问题是,如何在java / kotlin中实现这样的事务呢?

我在这个博客文章中使用admin sdk看到类似的东西:

  return trs.get(db.collection('rooms') .where('full', '==', false) .where('size', '==', size) .limit(1));