2017-05-23 2 views
0

질문이 있습니다. 보석을 사용하여 세션을 만들려고하지만, 동시에 데이터를 저장하고 파일 저장소를 사용할 수 있도록 Firebase에 세션을 만듭니다. 그렇게 할 수 있었지만 세션을 닫고 세션을 다시 시작하고자 할 때 더 이상 firebase에 연결하지 않습니다.Firebase 인증 및 개발

$("#inicioUser").submit(function(event){ 
 
    event.preventDefault(); 
 
    console.log("funciono"); 
 
    var email = $('#email').val(); 
 
    var password = $('#password').val(); 
 
    
 
    var ses = sessionEmail(email,password); 
 
    return ses 
 
    
 
    
 
    }); 
 
    
 
    var sessionEmail = function sessionEmail(email,password){ 
 
    return firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) { 
 
    // Handle Errors here. 
 
    var errorCode = error.code; 
 
    var errorMessage = error.message; 
 
    if (errorMessage) { 
 
     errorRegister(errorMessage); 
 
     return false; 
 
    }else{ 
 
    success(); 
 
    return true; 
 
    } 
 
    
 
}); 
 
} 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<%= form_for resource, as: resource_name, url: session_path(resource_name), :html => {:id => "inicioUser"} do |f| %> 
 
    <div class="field"> 
 
    <%= f.label :email %><br /> 
 
    <%= f.email_field :email, autofocus: true, :id => 'email' %> 
 
    </div> 
 

 
    <div class="field"> 
 
    <%= f.label :password %><br /> 
 
    <%= f.password_field :password, autocomplete: "off", :id => 'password' %> 
 
    </div> 
 

 
    <% if devise_mapping.rememberable? -%> 
 
    <div class="field"> 
 
     <%= f.check_box :remember_me %> 
 
     <%= f.label :remember_me %> 
 
    </div> 
 
    <% end -%> 
 

 
    <div class="actions"> 
 
    <button id="logInForm" >Inciar sesion</button> 
 
    
 
    </div> 
 
<% end %>

답변

0

당신이 오류가 묻어 있지 때 성공의 함수를 호출 할 것 같습니다 ?

너무 깊이 파고 들지 않으면 Firebase 오류를 발견했을 때 항상 오류 메시지 (공백 인 경우에도)가있을 것이므로 성공 함수에 도달 할 수 없다는 것이 문제의 원인이라고 생각합니다. 내 추측이야.

성공 함수를 약속의 then() 부분에 넣으면 오류가 없을 때 success 함수가 호출됩니다. 오류가 있으면 호출해서는 안되며, 내가 추측 한 것은 당신이 시도한 것입니다. 나는 틀릴 수도 있지만 도움이되기를 바랍니다.

var sessionEmail = function sessionEmail(email,password){ 
    firebase 
    .auth() 
    .signInWithEmailAndPassword(email, password) 
    .then(function() { 
     success(); 
    }) 
    .catch(function(error) { 
     errorRegister(error.message); 
    }); 
};