Ваш код, который получает UID, работает не так, как вы ожидаете. Слушатель состояния аутентификации является асинхронным и запускает после строки кода, которая accessesfirebase.auth().currentUser
. Эта строка кода фактически дает вам текущего пользователя до завершения входа. Это означает, что оно будет неопределенным.
Затем вы используете это неопределенное значение для создания ссылки на местоположение в базе данных. Это заставляет фактическую ссылку быть чем-то иным, чем вы ожидаете. Вы должны добавить журнал отладки, чтобы увидеть это сами.
Вы должны использовать обратный вызов, чтобы определить, когда именно пользователь вошел в систему, и только читать и записывать местоположение этого пользователя. Это означает, что вам, вероятно, следует переместить строки кода, которые записывают базу данных в обратный вызов, когда вы знаете, что user
является правильным, и использовать user.uid
для создания ссылки на базу данных для чтения и записи.