Firebase 3.3.x Nodejs - createUserWithEmailAndPassword不是函数

时间:2016-09-06 11:08:42

标签: node.js firebase firebase-authentication

我已经看到了很多关于此的问题,但让我感到困惑的是firebase nodejs x createUserWithEmailAndPassword()有一个函数{ {1}}。

每次我打印firebase.auth()时,它只有这些功能:

{ 
    createCustomToken: [Function],
    verifyIdToken: [Function],
    INTERNAL:{ 
        delete: [Function],
        getToken: [Function],
        addAuthTokenListener: [Function],
        removeAuthTokenListener: [Function] 
    } 
}

此外,在相同的nodejs文档中,documentation表示:

  

auth(app)返回 firebase.auth.Auth

     

获取默认App或给定App的Auth对象。

     

用法:

     

firebase.auth()firebase.auth(app)

所以我假设调用firebase.auth()会返回firebase.auth(),其中包含firebase.auth.Auth函数。

注意

是的,我使用firebase.initializeApp()正确初始化了firebase并且它运行正常,我已经在进行database个事务JSYK。

1 个答案:

答案 0 :(得分:8)

适用于Node.js的Firebase SDK可以在两种模式下运行(从3.3版开始):

  1. 作为服务器端SDK,当您初始化它时会发生服务帐户

    firebase.initializeApp({
      serviceAccount: "myproject-3d9889aaeddb.json",
      databaseURL: "https://myproject.firebaseio.com"
    });
    

    如果使用服务帐户初始化(3.2及以前版本中唯一可用的选项),您的连接将自动作为管理员进行身份验证,并且您只能admin auth functionality可用:创建和验证自定义令牌。< / p>

  2. 作为客户端SDK,在初始化时会发生工作API密钥

    firebase.initializeApp({
      apiKey: "myprojectsApiKey",
      databaseURL: "https://myproject.firebaseio.com"
    });
    

    如果使用API​​密钥初始化(仅在版本3.3之后可用),您会发现client-side authentication methods可用。

  3. 它刚刚在我自己的项目中验证了这一点:

    var firebase = require("firebase");
    
    firebase.initializeApp({
      apiKey: "AI...Sc",
      databaseURL: "https://stackoverflow.firebaseio.com"
    });
    
    firebase.auth().createUserWithEmailAndPassword("nodeuser@firebaseui.com", "firebase")
        .then(user => console.log(user))
        .catch(error => console.error(error));
    

    有关详细信息,请参阅this post on firebase-talk