diff --git a/app/public/background.js b/app/public/background.js index 1b14192..2e08a28 100644 --- a/app/public/background.js +++ b/app/public/background.js @@ -35,6 +35,19 @@ firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL); const isAuthed = () => true && firebase.auth().currentUser; const doAuth = () => firebase.auth().signInAnonymously(); +let currentUser; + +if (!isAuthed()) doAuth(); +else currentUser = firebase.auth().currentUser; + +firebase.auth().onAuthStateChanged((user) => { + if (user) { + currentUser = user; + } else { + currentUser = {}; + } +}); + const fetcher = async (request, sendResponse) => { if (!isAuthed()) await doAuth(); const { url, method } = request; @@ -69,11 +82,6 @@ const fetcher = async (request, sendResponse) => { ); }; -const sendAuth = async (sendResponse) => { - if (!isAuthed()) await doAuth(); - sendResponse(firebase.auth().currentUser); -}; - CHROME_OR_BROWSER.runtime.onInstalled.addListener((details) => { if (details.reason) { if (details.reason === 'install') { @@ -119,7 +127,7 @@ CHROME_OR_BROWSER.runtime.onMessage.addListener((request, sender, sendResponse) fetcher(request, sendResponse); break; case 'GET_AUTH': - sendAuth(sendResponse); + sendResponse({ uid: currentUser.uid }); break; case 'GET_PARTIES': sendResponse( diff --git a/app/src/Api.js b/app/src/Api.js index 27234d9..a443064 100644 --- a/app/src/Api.js +++ b/app/src/Api.js @@ -127,8 +127,8 @@ export const scrollThread = () => { }, 250); }; -export const getUserUid = async () => - new Promise((resolve, reject) => { +export const getUserUid = async () => { + return new Promise((resolve, reject) => { CHROME_OR_BROWSER.runtime.sendMessage( { type: 'GET_AUTH', @@ -136,10 +136,11 @@ export const getUserUid = async () => (response) => { const { uid } = response; updateLocalData({ userUid: uid }); - resolve(uid); + resolve(response); } ); }); +}; export const fetcher = async ({ endpoint, method, ...args }) => { const url = `${API_HOST}/${endpoint}`;