mirror of
https://github.com/zhigang1992/react-native-firebase.git
synced 2026-04-11 11:29:13 +08:00
Fix #2532
This commit is contained in:
@@ -58,7 +58,7 @@ export function parseUpdateArgs(args) {
|
||||
if (isString(key)) {
|
||||
data[key] = value;
|
||||
} else if (key instanceof FirestoreFieldPath) {
|
||||
data = mergeFieldPathData(data, key._segments, value);
|
||||
data[key._toPath()] = value;
|
||||
} else {
|
||||
throw new Error(`argument at index ${i} must be a string or FieldPath`);
|
||||
}
|
||||
@@ -141,25 +141,6 @@ function buildFieldPathData(segments, value) {
|
||||
};
|
||||
}
|
||||
|
||||
export function mergeFieldPathData(data, segments, value) {
|
||||
if (segments.length === 1) {
|
||||
return {
|
||||
...data,
|
||||
[segments[0]]: value,
|
||||
};
|
||||
}
|
||||
if (data[segments[0]]) {
|
||||
return {
|
||||
...data,
|
||||
[segments[0]]: mergeFieldPathData(data[segments[0]], segments.slice(1), value),
|
||||
};
|
||||
}
|
||||
return {
|
||||
...data,
|
||||
[segments[0]]: buildFieldPathData(segments.slice(1), value),
|
||||
};
|
||||
}
|
||||
|
||||
export function parseSnapshotArgs(args) {
|
||||
if (args.length === 0) {
|
||||
throw new Error('expected at least one argument.');
|
||||
|
||||
Reference in New Issue
Block a user