Обновление Firebase для нескольких путей установило для родительского узла значение null - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь использовать многопутевые обновления базы данных Firebase в реальном времени. Однако попытка установить для родительского узла значение NULL, как показано ниже, приведет к ошибке.

const firebaseUpdate = {}
firebaseUpdate[`user/${uid}`] = null
db.ref().update(firebaseUpdate) 

Ошибка: ошибка Reference.update: первый аргумент содержит путь / user / USER_ID это предок другого пути / user / USER_ID / creationTime

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

1 Ответ

1 голос
/ 27 июня 2019

Сообщение об ошибке указывает на то, что вы пытаетесь применить два конфликтующих обновления к базе данных за одну операцию.Как говорится в сообщении, ваше обновление пытается:

  1. запись в /user/USER_ID
  2. запись в /user/USER_ID/creationTime

Вторая запись - этодитя первого.Поскольку порядок записи в нескольких местах не определен, невозможно сказать, каким будет результат операции записи.

Если вы хотите заменить любые данные, которые в данный момент существуют в /user/USER_ID, на creationTime, вы должны обновить его так:

db.ref().update({
  "/user/USER_ID": { creationTime: Date.now() }
}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...