|
1 | 1 | import adaptor from '../adaptor'
|
2 | 2 | import type { Collection } from '../collection'
|
3 | 3 | import { unwrapData } from '../data'
|
4 |
| -import type { Field } from '../field' |
| 4 | +import type { Field, FieldsWithFalsyValues } from '../field' |
5 | 5 | import type { Ref } from '../ref'
|
6 | 6 | import type { OperationOptions, RuntimeEnvironment } from '../types'
|
7 | 7 | import type { UpdateValue } from '../value'
|
@@ -30,7 +30,7 @@ export async function update<
|
30 | 30 | >(
|
31 | 31 | collection: Collection<Model>,
|
32 | 32 | id: string,
|
33 |
| - data: Field<Model>[], |
| 33 | + data: FieldsWithFalsyValues<Model>, |
34 | 34 | options?: UpdateOptions<Environment>
|
35 | 35 | ): Promise<void>
|
36 | 36 |
|
@@ -107,9 +107,9 @@ export async function update<
|
107 | 107 | Environment extends RuntimeEnvironment | undefined
|
108 | 108 | >(
|
109 | 109 | collectionOrRef: Collection<Model> | Ref<Model>,
|
110 |
| - idOrData: string | Field<Model>[] | UpdateModel<Model>, |
| 110 | + idOrData: string | FieldsWithFalsyValues<Model> | UpdateModel<Model>, |
111 | 111 | maybeDataOrOptions?:
|
112 |
| - | Field<Model>[] |
| 112 | + | FieldsWithFalsyValues<Model> |
113 | 113 | | UpdateModel<Model>
|
114 | 114 | | UpdateOptions<Environment>,
|
115 | 115 | maybeOptions?: UpdateOptions<Environment>
|
@@ -137,7 +137,9 @@ export async function update<
|
137 | 137 |
|
138 | 138 | const firebaseDoc = a.firestore.collection(collection.path).doc(id)
|
139 | 139 | const updateData = Array.isArray(data)
|
140 |
| - ? data.reduce((acc, { key, value }) => { |
| 140 | + ? data.reduce((acc, field) => { |
| 141 | + if (!field) return |
| 142 | + const { key, value } = field |
141 | 143 | acc[Array.isArray(key) ? key.join('.') : key] = value
|
142 | 144 | return acc
|
143 | 145 | }, {} as { [key: string]: any })
|
|
0 commit comments