Событие child_added
происходит только когда:
- Данные изначально загружены
- Добавлен новый дочерний узел
Когда вы добавляете нового дочернего элемента с отметкой времени на стороне сервера, происходит несколько вещей:
- Клиент Firebase, к которому вы добавляете узел, немедленно запускает событие
child_added
для нового узла с лучшим предположением о данных.
- Клиент отправляет данные на сервер.
- Сервер проверяет запись, гарантируя, что она разрешена в соответствии с правилами безопасности, и расширяет любые маркеры (т. Е. Маркер метки времени на стороне сервера).
- Затем сервер отправляет результат обратно клиенту.
- Клиент запускает любые события, необходимые для согласования своих данных с
На этом последнем шаге ему нужно изменить метку времени, потому что его первоначальная оценка, вероятно, была неправильной. Таким образом, он запускает событие child_changed
для узла в этом случае.
Аналогичным образом, если сервер отклонил запись, из-за правил безопасности клиент сгенерирует событие child_removed
для согласования.