Firestore удаляет ВСЕ поля, кроме ОДНОГО - PullRequest
0 голосов
/ 03 августа 2020

Можно ли удалить все поля в документе Firestore, кроме ОДНОГО поля, в ОДНОЙ записи в базу данных (без чтения pior)

Я знаю, что у меня есть документ с некоторыми приличиями, но я не знаю все они. Я хочу удалить все эти свойства, кроме одного, которое я знаю.

Известное мне keep.

            {
                keep: 'keep',
                remove1: 'remove',
                remove2: 'remove',
                remove3: 'remove',
            }

do c после транзакции должно быть:

            {
                keep: 'keep',
            }

Я мог бы использовать firebase.firestore.FieldValue.delete() на каждой из клавиш t

1 Ответ

2 голосов
/ 03 августа 2020

Если вы знаете имя и значение поля, которое хотите сохранить, вы можете просто перезаписать документ объектом, который содержит только известное вам свойство:

const keepValue = ...;
db.collection('mycollection').doc('mydoc').
set(
  { keep: keepValue }
);

Поскольку мы используем set() без опции слияния, все поля в документе будут перезаписаны объектом, переданным методу set().

Если вы не знаете значение (или имя) поля, которое хотите сохранить, вам нужно будет прочитать документ, чтобы найти это значение или имя.

...