我有一个问题,我正在尝试与gem设备进行会话,但同时在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 %>
&#13;
答案 0 :(得分:0)
看起来你想在没有错误被捕获时调用成功函数?
如果不深入研究它,我会猜测问题是当你遇到Firebase错误时,可能总会有一条错误消息(即使是空的),所以它永远不会到达成功函数。这是我的猜测。
如果将成功函数放入承诺的then()
部分,则在没有错误时将调用成功函数。如果有错误则不应该调用,我猜测的就是你想要的。我可能错了,但我希望这是一些帮助。
var sessionEmail = function sessionEmail(email,password){
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(function() {
success();
})
.catch(function(error) {
errorRegister(error.message);
});
};