Firestore, как остановить транзакцию? - PullRequest
0 голосов
/ 07 июня 2018

В транзакции я хочу записывать данные только в том случае, если данные отсутствуют

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 ()

Как я могу это остановить.

1 Ответ

0 голосов
/ 29 июня 2018

Я использовал базу данных реального времени вместо пожарного депо, и его транзакция имеет функцию остановки

     return Transaction.abort();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...