2016-05-27 22 views
7

私はnodejsでFirebase authを使ってユーザアカウントを作成しようとしています。それは機能しません、なぜ私は知らない。node.jsでFirebase Authを使用してユーザを作成するにはどうすればよいですか?

var config = {.......}; // i can't share the config 

var app = firebase.initializeApp(config); 

var db = app.database(); 
var auth = app.auth(); 

auth.createUserWithUsernameAndPassword("[email protected]", "@NewPassWord").then(
    function(user){ console.log(user);}, 
    function(error){ console.error(error);} 
); 

エラーがNodeJSによって生成:ここでは、コードとnodejsによって生成されたエラーの井戸

TypeError: Object [object Object] has no method 'createUserWithUsernameAndPassword' 
    at Object.<anonymous> (/home/antonio/Projects/firebase/app.js:20:6) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:906:3 
+0

私はまったく同じ問題を抱えています!助けてくださいhttp://stackoverflow.com/questions/37504466/firebase-auth-createuserwithemailandpassword-undefined-is-not-a-function?lq=1 –

+0

私はクライアントの匿名ユーザー認証を使用して回避策を見つけました側。あなたのユースケースをうまく説明して、それに基づいて答えを書くことができました。 –

答えて

2

は、私はないと思うが、その作品"createUserWithUsernameAndPassword"方法、この代わりにcreateUserWithEmailAndPassword

使用

firebaseを使用する際にユーザー名を使用しました。

0

Cyrusの応答は正しいです。

しかし、2016年11月の時点でこれを行う方法は、次のことに注意してください:

firebaseAdmin.auth().createUser({ 
    email: "[email protected]", 
    password: "secretPassword" 
    }) 
    .then(function(userRecord) { 
    // A UserRecord representation of the newly created user is returned 
    console.log("Successfully created new user:", userRecord.uid); 
    }) 
    .catch(function(error) { 
    console.log("Error creating new user:", error); 
    }); 

official documentationで、より完全なガイドを参照してください。

1

私はついにNode.jsで作業しました。お使いのappfirebaseではなく、firebase-adminのインスタンスですか?私は(かなり標準運賃)のように、メインapp.jsfirebaseを初期化する私のexpressアプリで

:私はこれを行うユーザーを作成する責任routeで次に

var firebase = require("firebase"); 

firebase.initializeApp 
({ 
    apiKey: "xxx", 
    authDomain: "xxx", 
    databaseURL: "xxx", 
    storageBucket: "xxx", 
    messagingSenderId: "xxx" 
}); 

var firebase = require("firebase"); 

router.post('/register', function(req, res, next) 
{ 
    var email = req.body.email; 
    var password = req.body.password; 

    firebase.auth().createUserWithEmailAndPassword 
    (
    email, 
    password 
) 
    .then(function(userRecord) 
    { 
    res.location('/user/' + userRecord.uid); 
    res.status(201).end(); 
    }) 
    .catch(function(error) 
    { 
    res.write 
    ({ 
     code: error.code 
    }); 
    res.status(401).end(); 
    }); 
}); 
+0

エクスプレスでのユーザーのログインまたは認証はどこで処理しますか? –

3

として、 2017年5月のこれは私たちが成功裏に使用しているものです。

// Create the authenticated user 
    admin.auth().createUser({ 
    email: email, 
    password: password, 
    displayName: `${firstName} ${lastName}`, 
    }) 
0

注:これは答えではないが、上記@Greggでthis答えを拡張しています。

私も、Firebase + node + expressでサービスアカウントを使用してユーザーを作成するのに苦労していました。ルートapp.js

私が持っている:興味を持って誰のために

var admin = require("firebase-admin"); 
var serviceAccount = require("./key.json"); 

admin.initializeApp({ 
    credential: admin.credential.cert(serviceAccount), 
    databaseURL: "https://<app-name>.firebaseio.com" 
}); 

と(@Greggあたりなど)私が持っているauth.jsルートで:

const firebase = require('firebase-admin'); 

firebase.auth().defaultAuth.createUser({ 
    email: req.body.email, 
    password: req.body.password, 
    displayName: req.body.username, 
}) 

私はこれが以前の答えのほんの少しの拡張ですが、ドキュメントは非常に不明瞭なようですが、私は同じまたは同様の問題を抱える多数の人に気付きました。

関連する問題