diff options
author | Michael Lehenbauer <mikelehen@gmail.com> | 2018-04-20 14:48:59 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-20 14:48:59 -0700 |
commit | 7dca635039efb00082624552c223ac7f47ea0cad (patch) | |
tree | 4a031dcb31dcfd04c1b43f83e956a440d875fbb0 /Firestore/Source/API | |
parent | 11b6c014fb8799b8eff1acf795e7d4c366ea029e (diff) |
Move array transforms to internal header pending backend support. (#1139)
Diffstat (limited to 'Firestore/Source/API')
-rw-r--r-- | Firestore/Source/API/FIRFieldValue+Internal.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Firestore/Source/API/FIRFieldValue+Internal.h b/Firestore/Source/API/FIRFieldValue+Internal.h index 1618cd4..883a307 100644 --- a/Firestore/Source/API/FIRFieldValue+Internal.h +++ b/Firestore/Source/API/FIRFieldValue+Internal.h @@ -54,4 +54,32 @@ NS_ASSUME_NONNULL_BEGIN @property(strong, nonatomic, readonly) NSArray<id> *elements; @end +// TODO(array-features): Move to FIRFieldValue.h once backend support lands. +@interface FIRFieldValue () + +/** + * Returns a special value that can be used with setData() or updateData() that tells the server to + * union the given elements with any array value that already exists on the server. Each + * specified element that doesn't already exist in the array will be added to the end. If the + * field being modified is not already an array it will be overwritten with an array containing + * exactly the specified elements. + * + * @param elements The elements to union into the array. + * @return The FieldValue sentinel for use in a call to setData() or updateData(). + */ ++ (instancetype)fieldValueForArrayUnion:(NSArray<id> *)elements NS_SWIFT_NAME(arrayUnion(_:)); + +/** + * Returns a special value that can be used with setData() or updateData() that tells the server to + * remove the given elements from any array value that already exists on the server. All + * instances of each element specified will be removed from the array. If the field being + * modified is not already an array it will be overwritten with an empty array. + * + * @param elements The elements to remove from the array. + * @return The FieldValue sentinel for use in a call to setData() or updateData(). + */ ++ (instancetype)fieldValueForArrayRemove:(NSArray<id> *)elements NS_SWIFT_NAME(arrayRemove(_:)); + +@end + NS_ASSUME_NONNULL_END |