如何解决Firebase功能控制台中的“状态”:{“代码”:3,“消息”:“ INVALID_ARGUMENT”}错误?

我正在将ReactJS与Firebase一起使用来创建函数。我的动机是创建用户注册功能。以下是它的代码。

app.post( '/signup', (req, res)=> {
    const newUser = {
        email : req.body.email,
        password : req.body.password,
        confirmPassword : req.body.confirmPassword,
        handle : req.body.handle,
    }; 
    firebase.auth().createUserWithEmailAndPassword('newUser.email', 'newUser.password')
    .then((data)=>{
        return res.json({message: `user  signed up successfully`});
    } ).catch( (err) => { console.error(err); return res.json({error : err.code}) } );

} )

它还需要使用具有适当凭据的Firebase初始化。我包括的代码如下:

const functions = require('firebase-functions');
const admin     = require('firebase-admin');
const app   = require('express')();
const firebase  = require('firebase');
const firebaseConfigg = {
    apiKey: "A*************************s",
    authDomain: "socialape-9ede9.firebaseapp.com",
    databaseURL: "https://socialape-9ede9.firebaseio.com",
    projectId: "socialape-9ede9",
    storageBucket: "socialape-9ede9.appspot.com",
    messagingSenderId: "105*****9789",
    appId: "1:1054747689789:web:075f037f03b59627edfb54",
    measurementId: "G-ZY1LNR052N"
  };

  admin.initializeApp();
firebase.initializeApp(firebaseConfigg);

The firebase functions log is showing this error when i try to run firebase deploy :

How to get through this error? I have been following this youtube tutorial link :Youtube social networking website tutorial with react and firebase and around 42.55min the guy uses firebase authentication, and copies a code in project settings, which seems to be different for me (obvioously i am not expecting the same api keys etc, but the format, it actually asks me to add a web app, but not in the tutorial) when i go through the exact same steps, snippet for me looks like the const firebaseconfig that i gave in the code snippet above. My VS Code says:

错误:功能未正确部署。
评论
占领网吧
占领网吧

In a Cloud Function, you need to use the Admin SDK if you want to interact with one of the Firebase services (Auth, Firestore, Cloud storage, etc.).

因此,您需要对代码进行如下修改:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const app = require('express')();

admin.initializeApp();

//...

app.post( '/signup', (req, res)=> {
    const newUser = {
        email : req.body.email,
        password : req.body.password,
        // see https://firebase.google.com/docs/reference/admin/node/admin.auth.UserRecord
    }; 

    admin.auth().createUser(newUser)
    .then((data)=> {
        return res.send({message: `user  signed up successfully`});
    })
    .catch((err) => {
        console.error(err);
        return res.status(500).send({error : err.code}) });
});

See also https://firebase.google.com/docs/auth/admin/manage-users?authuser=0#create_a_user.

点赞
评论