# #firebase #google-cloud-firestore #firebase-authentication #google-cloud-functions
Вопрос:
У меня есть электронная почта, аутентификация Google и Facebook в Firebase, и я хочу создать записи Firestore о пользователях, которые входят в систему с помощью Google или Facebook.
Мой код выглядит следующим образом:
exports.onUserCreate = functions.auth.user().onCreate(async (user) => {
if (user.providerId !== 'password') {
console.log('onusercreate start')
await admin.firestore().collection('users').doc(user.uid).set({
email: user.email,
photoURL: user.photoURL,
user_name: '',
full_name: user.displayName,
phone_number: '',
uid: user.uid,
friends_count: 0,
posts: 0,
fcm_token: '',
chats_initiated: [],
rank: 'Goon',
rah_points: 0,
last_seen: '',
push_notification_settings: 'ON',
})
}
})
Этот код выдает следующую ошибку в консоли:
Unhandled Rejection (FirebaseError): No document to update: projects/teambeforeself-b1c79/databases/(default)/documents/users/oe7d4MMaTyQ6kNDxuEdqGeamLeQ2
Пользователь аутентификации создается с помощью входа в Google, но документ Firestore не создается.
Журналы в облачных функциях Firebase выглядят следующим образом:
2:58:51.762 pm onUserCreate Function execution started
2:58:52.116 pm onUserCreate onusercreate start
2:58:53.454 pm onUserCreate Function execution took 1693 ms, finished with status: 'ok'
Комментарии:
1. Откуда у вас эта ошибка? Журналы показывают, что функции завершены
ok
. Ошибка имела бы смысл, если бы вы использовалиupdated
вместоset
этого . Ошибка возникает обычно, если вы пытаетесь обновить документ, которого не существует. Этого не должно происходить при использованииset
.2. Я получаю ошибку в браузере. Я использую react
3. Необработанный отказ (ошибка FirebaseError): Нет документа для обновления: проекты/teambeforeself-b1c79/базы данных/(по умолчанию)/документы/пользователи/FiY0BPz76bUqMP81XEdosemiBe33
4. Можете ли вы, пожалуйста, сделать скриншот ошибки. Обычно вы не получаете ошибок функции clout в своем браузере рядом с журналами в консоли Firebase.
5. Теперь в консоли появляется ошибка: ibb.co/KNngsQf