From 3fd7b456d5b58481fada7a31305bb21bb64dbd06 Mon Sep 17 00:00:00 2001 From: rsgowman Date: Tue, 29 May 2018 10:33:10 -0400 Subject: Handle deserializing BatchGetDocumentsResponse error case... (#1344) ... where neither 'found' nor 'missing' fields set. --- Firestore/core/src/firebase/firestore/remote/serializer.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Firestore/core/src/firebase') 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 Serializer::DecodeBatchGetDocumentsResponse( } else if (!missing.empty()) { return absl::make_unique(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; } } -- cgit v1.2.3