我有一个唯一代码列表,用户可以请求一个,后续请求必须无法使用。
所以我需要根据文档字段值更新单个文档的文档字段(不知道它的id):
update <code_document> set <user_field> = <userID> where <user_field> = null limit 1
我可以使用像
这样的查询Query query = ref.limit( 1 ).whereEqualTo( "user", null );
获取我想要更新的文档,然后运行更新,但我需要保证只运行一次,并且不能为两个用户分配相同的代码。
所以问题是:
1.我可以使用查询作为 where子句运行更新
或
2.我可以在事务中运行查询以获取文档引用,使用该引用更新文档然后提交事务