Я не уверен, что это правильный ответ, но, возможно, он приведет вас к одному.
Несколько вещей:
Вы можете значительно упростить этот код до
let ref = rootRef.child("requests").child("receiver").child((event?.userID)!).child("event").child(event!.key).child("requester").child(user!.uid)
let data = [
"isRequesterAccepted": false,
"key": String(user!.uid),
"profile_picture": String(user!.uid),
"eventKey": event?.key
]
ref.setValue(data)
также, как уже упоминалось, вы небезопасно распаковываете опциональные файлы, поэтому возможно, что данные неверны или не соответствуют ожидаемым.
Это, например, опасно
(event?.userID)!
, поскольку событие может быть равно нулю, что приведет к сбою приложения.
Кроме того, это может быть проблемой, и вы заявляете здесь, что событие, наверняка, не ноль.
event!.key
Я также отметил, что вы храните одно и то же значение в двух узлах - это может быть проблемой
.child("key").setValue(String(user!.uid))
.child("profile_picture").setValue(String(user!.uid))