aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Source/API/FIRTransaction.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/Source/API/FIRTransaction.mm')
-rw-r--r--Firestore/Source/API/FIRTransaction.mm15
1 files changed, 13 insertions, 2 deletions
diff --git a/Firestore/Source/API/FIRTransaction.mm b/Firestore/Source/API/FIRTransaction.mm
index 668a359..b5bdefa 100644
--- a/Firestore/Source/API/FIRTransaction.mm
+++ b/Firestore/Source/API/FIRTransaction.mm
@@ -68,8 +68,19 @@ NS_ASSUME_NONNULL_BEGIN
forDocument:(FIRDocumentReference *)document
merge:(BOOL)merge {
[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.internalTransaction setData:parsed forDocument:document.key];
+ return self;
+}
+
+- (FIRTransaction *)setData:(NSDictionary<NSString *, id> *)data
+ forDocument:(FIRDocumentReference *)document
+ mergeFields:(NSArray<id> *)mergeFields {
+ [self validateReference:document];
+ FSTParsedSetData *parsed =
+ [self.firestore.dataConverter parsedMergeData:data fieldMask:mergeFields];
[self.internalTransaction setData:parsed forDocument:document.key];
return self;
}