From 4c3d3b712222b38783a025f166e6769f7ff4d779 Mon Sep 17 00:00:00 2001 From: Francis Rodrigues Date: Mon, 10 Aug 2020 22:05:42 -0300 Subject: [PATCH] Fix: with-firebase-authentication event listener (#16057) Reference to discussion https://github.com/vercel/next.js/discussions/16010 Bug fixes to `with-firebase-authentication` example that enter in a loop `maximum update depth exceeded errors` becase of the `onIdTokenChanged` Firebase auth method. I added a clean up event listener. --- examples/with-firebase-authentication/utils/auth/useUser.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/with-firebase-authentication/utils/auth/useUser.js b/examples/with-firebase-authentication/utils/auth/useUser.js index cbd58d301e..f300fc1bbf 100644 --- a/examples/with-firebase-authentication/utils/auth/useUser.js +++ b/examples/with-firebase-authentication/utils/auth/useUser.js @@ -33,7 +33,7 @@ const useUser = () => { // Firebase updates the id token every hour, this // makes sure the react state and the cookie are // both kept up to date - firebase.auth().onIdTokenChanged((user) => { + const cancelAuthListener = firebase.auth().onIdTokenChanged((user) => { if (user) { const userData = mapUserData(user) setUserCookie(userData) @@ -50,6 +50,10 @@ const useUser = () => { return } setUser(userFromCookie) + + return () => { + cancelAuthListener() + } // eslint-disable-next-line react-hooks/exhaustive-deps }, [])