aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/src/firebase/firestore
diff options
context:
space:
mode:
authorGravatar rsgowman <rgowman@google.com>2018-05-29 10:33:10 -0400
committerGravatar GitHub <noreply@github.com>2018-05-29 10:33:10 -0400
commit3fd7b456d5b58481fada7a31305bb21bb64dbd06 (patch)
treec4e1c4faee7afdef2b2b18ba87049a722638ef0f /Firestore/core/src/firebase/firestore
parente318923d318151e503de03be53aef1a0cffc58e3 (diff)
Handle deserializing BatchGetDocumentsResponse error case... (#1344)
... where neither 'found' nor 'missing' fields set.
Diffstat (limited to 'Firestore/core/src/firebase/firestore')
-rw-r--r--Firestore/core/src/firebase/firestore/remote/serializer.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/Firestore/core/src/firebase/firestore/remote/serializer.cc b/Firestore/core/src/firebase/firestore/remote/serializer.cc
index e06dcb4..ccc5ac3 100644
--- a/Firestore/core/src/firebase/firestore/remote/serializer.cc
+++ b/Firestore/core/src/firebase/firestore/remote/serializer.cc
@@ -583,9 +583,10 @@ std::unique_ptr<MaybeDocument> Serializer::DecodeBatchGetDocumentsResponse(
} else if (!missing.empty()) {
return absl::make_unique<NoDocument>(DecodeKey(missing), read_time);
} else {
- // Neither 'found' nor 'missing' fields were set.
- // TODO(rsgowman): Handle the error case.
- abort();
+ reader->set_status(Status(FirestoreErrorCode::DataLoss,
+ "Invalid BatchGetDocumentsReponse message: "
+ "Neither 'found' nor 'missing' fields set."));
+ return nullptr;
}
}