Переименование узла или сравнение newData из другого узла с фактическим в Firebase - PullRequest
0 голосов
/ 25 апреля 2019

Я разрабатываю приложение, в котором при некоторых обстоятельствах необходимо было бы изменить набор идентификаторов для узла firebase.

Например, давайте представим, что мне нужно изменить «IDB8BD7FA9990E5A3E» на что-то вроде «IDAAAAAAAAAAAAAAAA»"или что-то еще.

Ссылка на изображение

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

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

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

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

Для этого конкретного случая давайте представим, что кроме узла "IDB8BD7FA9990E5A3E"у нас был узел "IDBBBBBBBBBBBBBBBB", давайте также представим, что в первом случае "IDB8BD7FA9990E5A3E" имеет те же внутренние данные, что и узел "IDAAAAAAAAAAAAAAAA", который требуется вставить.Правило будет проверять: внутренние данные "IDAAAAAAAAAAAAAAAA" совпадают с данными "IDBBBBBBBBBBBBBBBB"?Нет, тогда перейдите к следующему.Внутренние данные "IDAAAAAAAAAAAAAAAA" совпадают с данными "IDB8BD7FA9990E5A3E"?Да, «ИДААААААААААААААА» вставляется.(Эта проверка может неожиданно увеличиться до любого количества узлов в базе данных).

С другой стороны, если внутренние данные не должны полностью совпадать с внутренними данными какого-либо из существующих узлов, тогдане будет вставлен.

Можно ли это сделать, и в этом случае какой синтаксис правил Firebase мне нужно будет использовать для этого?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...