Firebase: активирован режим только для чтения и не в реальном времени для повышения производительности браузера.

Режим только для чтения и не в реальном времени активирован для повышения производительности браузера.

В моем проекте появляется сообщение, и я также не могу удалить узлы

Также я прочитал это https://groups.google.com/forum/#!topic/firebase-talk/qLxZCI8i47s

В котором говорится:

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

В нем говорится:

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

я не понимаю, что это значит

Как вернуться к панели управления в реальном времени?


person Veeresh Charantimath    schedule 29.07.2016    source источник


Ответы (7)


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

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

https://<your-project>.firebaseio.com/

А затем покажет список предметов. Теперь щелкните URL-адрес в этой псевдоадресной строке и измените его на:

https://<your-project>.firebaseio.com/<one-of-your-keys>

И нажмите enter. Дерево данных перезагрузится только с узлом от one-of-your-keys и ниже и, вероятно, снова переключится в режим реального времени.

person Frank van Puffelen    schedule 29.07.2016
comment
Но как я могу удалить узел высокого уровня, который имеет большое количество дочерних элементов, из браузера? По какой-то причине даже выполнение программного удаления узла высокого уровня с использованием вызова mutableData.setValue(null) внутри транзакции остановило удаление этого узла для меня... этот метод работал раньше - person dangling_refrenz; 10.10.2016
comment
Хорошо, извините, похоже, что программное удаление сработало для меня, просто потребовалось несколько секунд, чтобы отразиться в браузере .... так что вывод: для узлов с большим номером. детей я могу удалить только программно, не из браузера - person dangling_refrenz; 10.10.2016
comment
@dangling_refrenz Немного поздно, но на самом деле вы можете удалить узлы высокого уровня в браузере. Вы можете проверить мой ответ ниже, чтобы сделать это. - person Dallas; 29.06.2017
comment
@FrankvanPuffelen Эй, я пробовал вышеописанное, но консоль firebase все еще показывает это: режим только для чтения и режим не в реальном времени активирован для повышения производительности браузера. Как снова переключиться в режим реального времени? - person BlackMamba; 22.08.2017

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

Откройте текстовый редактор и введите { }. Сохраните этот файл как «blankJSON.json».

Перейдите к узлу высокого уровня, который вы хотите удалить, и выберите его, как только он откроется и покажет вам все узлы, которые необходимо удалить, выберите три полосы в правом верхнем углу и выберите «Импорт JSON» (было бы безопасно сначала «Экспорт JSON» Если у вас нет резервных копий, на случай, если вы здесь ошибетесь). Импортируйте файл JSON, который мы создали ранее, под названием «blankJSON».

Это удалит все данные внутри.

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

person Dallas    schedule 06.04.2017
comment
Умное решение, спасибо - person Kalpesh; 05.07.2017
comment
Умное и простое решение! - person Himanshu; 18.08.2017
comment
Таааааааааам спасибо! - person Code Novitiate; 25.11.2017
comment
Это идеальное решение сработало для меня за меньшее время - person Abhilasha; 27.05.2020
comment
конечно. проще, тем лучше! - person beerstorm; 14.07.2020
comment
Грубовато, но со своей задачей справился на отлично. - person NubSteel; 05.03.2021

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

  1. Щелкните правой кнопкой мыши подузел, который вы хотите изменить или удалить.

  2. Выберите открыть ссылку в новой вкладке

  3. Отредактируйте подузел в новой вкладке

person Ashwin    schedule 10.01.2017
comment
Это отличное наблюдение! Это означает, что вы можете войти в нужный узел через адресную строку, даже если подузел не существует! Это позволяет создавать новые узлы, даже если их отец слишком велик. - person Ivan Rubinson; 26.07.2018
comment
это лучшее решение, так как вы просто щелкаете правой кнопкой мыши и выбираете открыть в новой вкладке и тада .. спасибо, Эшвин! - person Charlie; 01.09.2018
comment
Но это не работает, если узел, который вы должны отредактировать, имеет много узлов. Firebase по-прежнему будет показывать вам режим только для чтения. - person Diego Ricardo Valdivia Arreola; 23.01.2020

Что вы можете сделать, так это иметь OnClickListener и вызвать метод удаления значения для вашей DatabaseReference, например:

  mCart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mDatabaseReference.removeValue();
        }
    });
person Zack    schedule 03.08.2017

1) Нажмите на узел, который вы хотите массово удалить

2) Импортируйте пустой файл .json (только содержащий фигурные скобки, {})

3) Значение узла будет установлено равным нулю, другими словами, оно будет удалено или, скорее, заменено пустым узлом!

person KSA    schedule 05.05.2020

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

У меня есть узел с 80000 подузлов (каждый объект имеет свой push-id), и я не могу его удалить или выполнить какое-либо действие, потому что в консоли Firebase не работает режим реального времени.

Я думаю, что единственный способ обновить или удалить данные - это сделать это с помощью кода JAVA :(

person DavideN    schedule 02.08.2016
comment
Это не имеет ничего общего с масштабируемостью Firebase, просто они ограничивают редактирование браузера для большого количества узлов. - person interrupt; 23.04.2017

Многократные попытки загрузить определенные ключи могут быть утомительными. Существует библиотека Python, которая может легко сделать это за вас.

http://ozgur.github.io/python-firebase/

Мне нужно было удалить много ключей, и это помогло мне сделать это за один раз.

person Ashish Kumar Srivastava    schedule 24.08.2016
comment
Ссылки на возможные решения всегда приветствуются, но, пожалуйста, добавьте некоторые подробности для будущих посетителей на случай, если ссылка больше недоступна. - person Nikolay Mihaylov; 24.08.2016