В Firebase SDK нет способа добавлять данные, если они уже есть, updateChildValues
Обновлять предыдущие значения или вставлять новые. Чтобы проверить, имеются ли уже данные, сначала нужно получить предыдущие данные, а затем проверить и принять решение. Как
Database.database().reference().observeSingleEvent(of: DataEventType.value, with: { (snapshot) -> Void in
if (snapshot.value != nil) {
// it means data already present
}
})
У нас есть еще одна возможность разрешить / запретить перезапись данных с помощью правил Firebase, например
{
"rules": {
"your_node": {
".write": "data.exists()" /// or ".write": "!data.exists()" if you want to restrict overwrite
}
}
}