2017-05-23 10 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); 
    }); 
};