From 9be4600e21912e4d17ac7512b4938dbdaecdebc8 Mon Sep 17 00:00:00 2001 From: Sidney Alcantara Date: Fri, 17 Sep 2021 14:50:23 +1000 Subject: [PATCH] fix user doc not being created --- src/contexts/AppContext.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/contexts/AppContext.tsx b/src/contexts/AppContext.tsx index d4af5073..ce1e6c54 100644 --- a/src/contexts/AppContext.tsx +++ b/src/contexts/AppContext.tsx @@ -83,7 +83,7 @@ export const AppProvider: React.FC = ({ children }) => { ); // Store matching userDoc - const [userDoc, dispatchUserDoc] = useDoc({}); + const [userDoc, dispatchUserDoc] = useDoc({}, { createIfMissing: true }); // Get userDoc useEffect(() => { if (currentUser) { @@ -95,12 +95,18 @@ export const AppProvider: React.FC = ({ children }) => { // Set userDoc if it doesn’t exist useEffect(() => { - if (!userDoc.doc && !userDoc.loading && userDoc.path && currentUser) { + if ( + (!userDoc.doc || !userDoc.doc.user) && + !userDoc.loading && + userDoc.path && + currentUser + ) { const userFields = ["email", "displayName", "photoURL", "phoneNumber"]; const user = userFields.reduce((acc, curr) => { if (currentUser[curr]) return { ...acc, [curr]: currentUser[curr] }; return acc; }, {}); + console.log("create user", userDoc.path, user); db.doc(userDoc.path).set({ user }, { merge: true }); } }, [userDoc, currentUser]);