Ive been having trouble getting signInWithRedirect and getRedirectResult working on my Firebase App that I host. I am only allowing Google and Apple Login and have been trying to set this up using their documentation Option 3: Proxy auth requests to firebaseapp.com (https://firebase.google.com/docs/auth/web/redirect-best-practices).
I am on my own dedicated server using Apache. Can I just add this to my .htaccess. I added the below and the signInWithRedirect goes to the corresponding sign in page but then come back and never fires off getRedirectResult and I get null on getRedirectResult. Am I doing something wrong?
RewriteEngine On
RewriteRule ^__/auth/(.*)$ https://{project_ID}.firebaseapp.com/__/auth/$1 [P]
MY JS:
import { auth, db, formatDate, page } from "./index.js";
import {
getAuth,
signInWithPopup,
signInWithRedirect,
getRedirectResult,
GoogleAuthProvider,
signOut,
OAuthProvider,
onAuthStateChanged,
getAdditionalUserInfo,
deleteUser,
} from "firebase/auth";
import { getDoc, setDoc, doc, serverTimestamp } from "firebase/firestore";
if (page === "/register.html" || page === "/login.html") {
checkRedirect();
}
if (btnAppleMember) {
btnAppleMember.addEventListener("click", (e) => {
e.preventDefault();
const provider = new OAuthProvider("apple.com");
signInWithRedirect(auth, provider);
});
}
async function checkRedirect() {
try {
const result = await getRedirectResult(auth);
console.log(result);
if (result) {
const credential = OAuthProvider.credentialFromResult(result);
const additionalUserInfo = getAdditionalUserInfo(result);
const isNewUser = additionalUserInfo.isNewUser;
if (credential) {
const accessToken = credential.accessToken;
if (isNewUser) {
console.log("New user created for user");
} else {
console.log("Member already");
}
}
console.log("redirect");
} else {
console.log("no redirect");
}
} catch (error) {
console.log("Error in getRedirectResult:", error);
}
}