2016-11-22 7 views
1

Предположим, у меня есть база данных Firebase в работе.Каков правильный способ изменения структуры данных Firebase?

Внезапно я хочу добавить дополнительное поле в объект. Каков правильный способ сделать это?

  1. Экспортировать данные json-файл, а затем добавить его вручную?
  2. Добавить программно?

Каковы ваши предложения по изменению схемы Firebase?

Приветствия Ну

+0

Я бы сделал это программно в Go/Python и библиотеках для Firebase REST API, если объекты, которые должны быть изменены, более 100 –

+0

Но вопрос действительно очень субъект, у него нет ответа, вам лучше удалить его прежде чем вы получите downvoteses –

+0

Существует не один лучший способ изменить структуру данных. Все зависит от изменений, которые вы хотите сделать, и от того, насколько устойчивы ваши существующие клиенты к изменениям. Не рассматривая очень конкретный случай (данные + код), это слишком широкая тема для ответа. –

ответ

0

Как отметил это широкий вопрос, так что не воспринимайте мой ответ в качестве окончательного решения. Это всего лишь несколько предложений, и люди могут не согласиться на всех из них (как таковой не большой StackOverflow Q/Aanswer).

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

При загрузке и загрузке всего JSON меньше шансов, что что-то пойдет не так из-за проблем с сетью.

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

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

Если вы используете только некоторые из услуг Firebase для своего приложения, вы можете временно закрыть их при обновлении базы данных (например, для размещения вы можете развернуть страницу с надписью «Вниз для обслуживания» и не взаимодействует с Firebase).

Смежные вопросы