firebase身份验证如何工作

时间:2016-07-29 13:45:11

标签: typescript ionic-framework firebase ionic2 firebase-authentication

来自firebase 3的代码文档https://firebase.google.com/docs/auth/web/manage-users#get_the_currently_signed-in_user

    firebase.auth().onAuthStateChanged(function(user){
          if (user) {
            // If there's a user take him to the home page.
            this.rootPage = HomePage;
          } else {
            // If there's no user logged in send him to the LoginPage
            this.rootPage = LoginPage;
          }
  });

如何在观察者中设置user参数,上面的代码与下面的代码有何不同?

教程@ http://javebratt.com/firebase-3-email-auth/

中的代码
firebase.auth().onAuthStateChanged((user) => {
          if (user) {
            // If there's a user take him to the home page.
            this.rootPage = HomePage;
          } else {
            // If there's no user logged in send him to the LoginPage
            this.rootPage = LoginPage;
          }
    });

我要问的原因是,我正在浏览离子2和firebase 3的教程,firebase.auth().onAuthStateChanged()实现明显不同于firebase 3官方文档中的内容

2 个答案:

答案 0 :(得分:0)

用户参数设置为var user = rootRef.getAuth();

这是我如何使用它。

var rootRef = new Firebase('https://yourapp.firebaseio.com');

// Check the current user login status and redirect if not logged in
var user = rootRef.getAuth();
if (user) {
   var user = rootRef.getAuth();
   var userRef = rootRef.child('users').child(user.uid);
   ... do something with the logged in user...
}

希望这有帮助。

答案 1 :(得分:0)

2类似,第一个使用回调函数,第二个使用arrow function。例如:这些是相同的(作为例子):

Search results for test

当用户使用firebase3进行身份验证时,它会在回调或箭头函数中传回一些数据。可以在示例中的用户变量下访问此数据。您可以执行console.log(用户)以查看传递的对象(例如身份验证ID,提供程序,电子邮件...)。

希望这能指出你正确的方向。