# #javascript #google-cloud-firestore #firebase-authentication #react-google-login
Вопрос:
В моем App.js
componentDidMount() {
this.authListerner = auth.onAuthStateChanged(async userAuth => {
if (userAuth){
const userRef = await handleUserProfile(userAuth);
userRef.onSnapshot(snapshot => {
this.setState({
currentUser: {
id: snapshot.id,
...snapshot.data(),
}
})
})
}
this.setState({
...initialState
});
});
}
Мой utilis.js
export const handleUserProfile = async ({userAuth, additionalData = {}})
=> {
if (!userAuth) {
console.warn("No userAuth provided!");
return;
}
const { uid } = userAuth;
const userRef = doc(collection(firestore, `users/${uid}`));
const snapshot = await userRef.get();
if (!snapshot.exists) {
const { displayName, email } = userAuth;
const timestamp = new Date();
try {
await userRef.setDoc(firestore, {
displayName,
email,
createdDate: timestamp,
...additionalData,
})
} catch(err) {
console.warn(err);
}
}
return userRef;
};
Кто-нибудь может мне в этом помочь. Я не могу заставить его работать. Я использую веб-версию firebase 9. которую я пытаюсь использовать просто с версии 8