@Override public List<WriteResult> apply(CommitResponse commitResponse) { List<com.google.firestore.v1beta1.WriteResult> writeResults = commitResponse.getWriteResultsList(); List<WriteResult> result = new ArrayList<>(); Preconditions.checkState( request.getWritesCount() == writeResults.size(), "Expected one write result per operation, but got %s results for %s operations.", writeResults.size(), request.getWritesCount()); Iterator<Mutation> mutationIterator = mutations.iterator(); Iterator<com.google.firestore.v1beta1.WriteResult> responseIterator = writeResults.iterator(); while (mutationIterator.hasNext()) { Mutation mutation = mutationIterator.next(); // Don't return both write results for a write that contains a transform, as the fact // that we have to split one write operation into two distinct write requests is an // implementation detail. if (mutation.document != null && mutation.transform != null) { // The document transform is always sent last and produces the latest update time. responseIterator.next(); } result.add( WriteResult.fromProto(responseIterator.next(), commitResponse.getCommitTime())); } return result; } });
@Override public List<WriteResult> apply(CommitResponse commitResponse) { List<com.google.firestore.v1beta1.WriteResult> writeResults = commitResponse.getWriteResultsList(); List<WriteResult> result = new ArrayList<>(); Preconditions.checkState( request.getWritesCount() == writeResults.size(), "Expected one write result per operation, but got %s results for %s operations.", writeResults.size(), request.getWritesCount()); Iterator<Mutation> mutationIterator = mutations.iterator(); Iterator<com.google.firestore.v1beta1.WriteResult> responseIterator = writeResults.iterator(); while (mutationIterator.hasNext()) { Mutation mutation = mutationIterator.next(); // Don't return both write results for a write that contains a transform, as the fact // that we have to split one write operation into two distinct write requests is an // implementation detail. if (mutation.document != null && mutation.transform != null) { // The document transform is always sent last and produces the latest update time. responseIterator.next(); } result.add( WriteResult.fromProto(responseIterator.next(), commitResponse.getCommitTime())); } return result; } });