У меня есть ссылка с 3 детьми.Я хочу наблюдать это, используя .childAdded
или .value
.Событие withCancel:
запускается, если что-то идет не так.Поскольку я тестировал, у меня еще не запущен withCancel:
, поэтому я задаю этот вопрос.
Если что-то пойдет не так, а withCancel:
будет запускаться каждый раз, когдацикл происходит или только один раз в начальный момент запроса?
Например.если .childAdded
или .value
захватывает первого потомка, и он успешен, то, когда он переходит к захвату второго потомка, возникает проблема, запускается withCancel:
, но затем он пытается использовать третьего потомка, который может быть либоуспех или также отменен.Это означает, что у меня определенно будет первый ребенок, у меня определенно не будет второго, но у меня может быть или не быть третьего.
или
Как только будет установлено соединение и снимокпосле закрытия «1017» никогда не получит шанс выстрелить, и я гарантированно получу всех 3 детей?Это означает, что как только наблюдатель запускается, если он доберется до первого ребенка, я гарантированно получу второго и третьего, потому что withCancel:
никогда не срабатывал, как только он начал наблюдать.И наоборот, до того, как оно дойдет до первого ребенка, если withCancel:
сработает, я не получу второй и третий, и вообще ничего не получу.
// or .value
ref?.observe( .childAdded, with: { [weak self](snapshot) in
// do something with each snapshot
}, withCancel: { [weak self](error) in
// do something based on wether this will fire only once or can fire multiple times
// for example if only once and I won't get anything then reload the tableView
// if in can run multiple times then don't reload the tableView until it's finished. I have to add a limit to the query
})