aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Source/API/FIRWriteBatch.mm
diff options
context:
space:
mode:
authorGravatar Sebastian Schmidt <mrschmidt@google.com>2018-05-02 11:10:19 -0700
committerGravatar GitHub <noreply@github.com>2018-05-02 11:10:19 -0700
commit542d81ac68c416e8d76839e438ad1d6aaab528f3 (patch)
treed9cdc0797d3757d6899047f9f78b578b73fd2cdd /Firestore/Source/API/FIRWriteBatch.mm
parent39e68afc1a76f5e2ee19405bd32de7b335d4fb43 (diff)
Adding mergeFields support (#1141)
Diffstat (limited to 'Firestore/Source/API/FIRWriteBatch.mm')
-rw-r--r--Firestore/Source/API/FIRWriteBatch.mm17
1 files changed, 15 insertions, 2 deletions
diff --git a/Firestore/Source/API/FIRWriteBatch.mm b/Firestore/Source/API/FIRWriteBatch.mm
index 1185dae..366c708 100644
--- a/Firestore/Source/API/FIRWriteBatch.mm
+++ b/Firestore/Source/API/FIRWriteBatch.mm
@@ -70,8 +70,21 @@ NS_ASSUME_NONNULL_BEGIN
merge:(BOOL)merge {
[self verifyNotCommitted];
[self validateReference:document];
- FSTParsedSetData *parsed = merge ? [self.firestore.dataConverter parsedMergeData:data]
- : [self.firestore.dataConverter parsedSetData:data];
+ FSTParsedSetData *parsed = merge
+ ? [self.firestore.dataConverter parsedMergeData:data fieldMask:nil]
+ : [self.firestore.dataConverter parsedSetData:data];
+ [self.mutations
+ addObjectsFromArray:[parsed mutationsWithKey:document.key precondition:Precondition::None()]];
+ return self;
+}
+
+- (FIRWriteBatch *)setData:(NSDictionary<NSString *, id> *)data
+ forDocument:(FIRDocumentReference *)document
+ mergeFields:(NSArray<id> *)mergeFields {
+ [self verifyNotCommitted];
+ [self validateReference:document];
+ FSTParsedSetData *parsed =
+ [self.firestore.dataConverter parsedMergeData:data fieldMask:mergeFields];
[self.mutations
addObjectsFromArray:[parsed mutationsWithKey:document.key precondition:Precondition::None()]];
return self;