2014-10-05 139 views
0

我正在努力在我的网站中实现FirebaseSimpleLogin功能。我已经阅读了他们的所有文档,但我真的没有取得任何进展。我认为,他们本周似乎已经更新了他们的文档,所以很多旧指南和SO答案已经过时。我真的很感激任何帮助。未定义的功能使用Firebase SimpleLogin

目前的主要问题是我在控制台中看到FirebaseSimpleLogin未定义。

出于测试的目的,我有我的页面设置是这样的:

<body> 
    <form id="login"> 
    <input type="email" value="" name="EMAIL" class="loginEmail" id="loginEmail" placeholder="email address" required><br> 
    <input type="password" value="" name="EMAIL" class="password" id="password" placeholder="password" required><br> 
    <input type="submit" value="Login" name="login" id="mc-embedded-subscribe" class="button"> 
    </form> 
    <script src="http://code.jquery.com/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script> 
    <script src='https://cdn.firebase.com/js/client/1.0.15/firebase.js'></script> 
    <script src="https://cdn.firebase.com/js/simple-login/1.6.4/firebase-simple-login.js"></script> 
    <script type="text/javascript" language="javascript" src="js/signup.js"></script> 
</body> 

,我有我的js文件(signup.js一个HTML中引用)是这样的:

var rootRef = new Firebase("https://myfirebase.firebaseio.com"); 
var authClient = new FirebaseSimpleLogin(rootRef, function(error, user) { 
    if (error) { 
     // an error occurred while attempting login 
     console.log(error); 
    } else if (user) { 
     // user authenticated with Firebase 
     console.log("User ID: " + user.uid + ", Provider: " + user.provider); 
    } else { 
     // user is logged out 
    } 
}); 
var loginEmail = $("#loginEmail").val(); 
var password = $("#password").val(); 
authClient.login('password', { 
    email: loginEmail, 
    password: password, 
    rememberMe: true 
}); 

任何关于如何让这个工作的指针?

UPDATE: 我确信我是装的SimpleLogin脚本登录页面后,js文件,但我仍然得到一个“的ReferenceError:$的createUser没有定义”。 : -/

回答

3

在加载firebase-simple-login之前,您正在加载您的JavaScript文件。只需将脚本标记移动到firebase-simple-login之后即可:

<body> 
    <form id="login"> 
    <input type="email" value="" name="EMAIL" class="loginEmail" id="loginEmail" placeholder="email address" required><br> 
    <input type="password" value="" name="EMAIL" class="password" id="password" placeholder="password" required><br> 
    <input type="submit" value="Login" name="login" id="mc-embedded-subscribe" class="button"> 
    </form> 
    <script src="http://code.jquery.com/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script> 
    <script src='https://cdn.firebase.com/js/client/1.0.15/firebase.js'></script> 
    <script src="https://cdn.firebase.com/js/simple-login/1.6.4/firebase-simple-login.js"></script> 
    <script type="text/javascript" language="javascript" src="js/signup.js"></script> 
</body> 
+0

呃,感觉就像一个总doofus。这就是我为了这么晚想做这件事而得到的。谢谢! – 2014-10-05 13:14:37

+1

身份验证现在是核心Firebase API的一部分,因此您不需要包含简单登录。你可以直接在你的rootRef上调用createUser()。细节在这里的用户认证指南:https://www.firebase.com/docs/web/guide/user-auth.html – Sara 2014-10-05 16:47:19

+0

嘿,谢谢@Sara - 真的感觉有点愚蠢,但我仍然获取createUser()未定义,即使Firebase(和简单登录现在应该是无关紧要的)js调用。有小费吗? – 2014-10-06 00:59:29