В транзакции я хочу записывать данные только в том случае, если данные отсутствуют
DocumentReference callConnectionRef1 = firestore.collection("connectedCalls").document(callChannelModel.getUid());
firestore.runTransaction(new Transaction.Function < Void > () {
@Override
public Void apply(Transaction transaction) throws FirebaseFirestoreException {
DocumentSnapshot snapshot = transaction.get(callConnectionRef1);
Log.d(TAG, callChannelModel.getUid());
if (!snapshot.exists()) {
//my code
transaction.set(callConnectionRef1, model);
} else {
//do nothing
}
return null;
});
Вы можете видеть, что в моем документе ссылка основана на uid, а в моем журнале я печатаю uid
Так гдеДанные uid не существуют, мой журнал печатает только один раз, и я вызываю транзакцию ..set (), в другом месте он продолжает показывать журнал uid, где данные уже существуют, похоже, что моя транзакция продолжает выполняться, если я не вызываю транзакцию ..set ()
Как я могу это остановить.