0

사용자가 로그인하지 않은 경우 Google SignIn 페이지로 리디렉션하고 사용자가 로그인하면 리디렉션하지 않기 위해 Firebase 인증을 사용하여 프로그램을 작성했습니다. 그것은 Google 로그인 후에 내 페이지로 돌아갑니다. 단 몇 초 만에 SignIn으로 다시 리디렉션됩니다. 여기에 내 코드입니다 :Firebase 인증 무한 루프

사용자가 당신이 무한 루프에 갇혀있다 왜 병렬로 signInWithRedirect 및 getRedirectResult 모두를 호출에, 즉 서명
$(document).ready(function() { 
var provider = new firebase.auth.GoogleAuthProvider(); 
var uid; 
var user = firebase.auth().currentUser; 
var xv = 0; 
var yv = 0; 
var xpos = 200; 
var ypos = 200; 
var changeRef = firebase.database().ref(); 
var keys = []; 

if (user != null) { 
uid = currentUser.uid; 
firebase.database().ref('users/' + uid).set({ 
xpos: xpos, 
ypos: ypos 
}); 
} else { 
firebase.auth().signInWithRedirect(provider); 
firebase.auth().getRedirectResult().then(function(result) { 
if (result.credential) { 
// This gives you a Google Access Token. You can use it to access the  Google API. 
var token = result.credential.accessToken; 
// ... 
} 
// The signed-in user info. 
user = result.user; 
}).catch(function(error) { 
// Handle Errors here. 
var errorCode = error.code; 
var errorMessage = error.message; 
// The email of the user's account used. 
var email = error.email; 
// The firebase.auth.AuthCredential type that was used. 
var credential = error.credential; 
// ... 
}); 
} 
var canvas = document.getElementById("canvas"); 
var processingInstance = new Processing(canvas, sketchProc); 

}); 
+0

문제를 조금 좁히면 더 나은 행운을 누릴 수 있습니다. 예를 들어 Processing.js와는 아무런 관련이 없습니다. 또한 적절한 들여 쓰기를 사용하여 코드를 읽기 쉽도록해야합니다. –

+0

사실 나는 그것을 고쳤습니다.하지만 당신 말이 맞습니다. 그것이 전체 코드이므로 processing.js 태그를 넣었지만 그 부분은 포함하지 않았습니다. 들여 쓰기 할 때 텍스트를 코드로 표시하는 방법을 모르겠습니다. 4 칸 밖에 없습니까? 팁 주셔서 감사! –

+0

질문에 대한 대답을 찾은 경우 대답을 게시하거나 질문을 삭제할 수 있습니다. 그러나 나중에 참조 할 수 있도록 코드 블록에 들여 쓰기를 포함시킬 수 있습니다. 전체 (정확하게 들여 쓰기 된) 코드 블록을 붙여 넣은 다음 강조 표시하고 코드 버튼을 누릅니다. 그러면 각 줄에 4 칸이 추가되고 원래 서식이 유지됩니다. –

답변

1

:

} else { 
    firebase.auth().signInWithRedirect(provider); 
    firebase.auth().getRedirectResult().then(function(result) { 

당신은 첨부 할 수 있습니다 signInWithRedirect를 클릭하거나이 블록에서 (사용자가 로그인하지 않은) 블록으로 끌어냅니다.