diff options
author | rsgowman <rgowman@google.com> | 2018-05-29 10:33:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-29 10:33:10 -0400 |
commit | 3fd7b456d5b58481fada7a31305bb21bb64dbd06 (patch) | |
tree | c4e1c4faee7afdef2b2b18ba87049a722638ef0f /Firestore/core/src/firebase/firestore | |
parent | e318923d318151e503de03be53aef1a0cffc58e3 (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.cc | 7 |
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; } } |