Можем ли мы удалить узел базы данных firebase, пока он читается - PullRequest
0 голосов
/ 05 мая 2020

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

userNotification.on('value', async snapshot => {
    if (snapshot.val()) {
      const { currentUser } = firebase.auth()
      // do something here
      userNotification.remove()
    }
  })

Нормален ли приведенный выше код? Или мне следует переместить код удаления за пределы обратного вызова on ('value')?

Исключение, которое я получаю, показано на снимке экрана ниже: enter image description here

Неустранимое исключение: NSGenericException Невозможно изменить объекты конфигурации после того, как они используются для FIRDatabaseReferences. - [FIRDatabaseConfig setPersistenceEnabled:]

1 Ответ

0 голосов
/ 05 мая 2020

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

Поскольку вы показываете ошибку на iOS, я укажу вам на Objective- C api для persistenceEnabled , в котором говорится:

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

...