【问题标题】:How do i solve the "status":{"code":3,"message":"INVALID_ARGUMENT"} error in firebase functions console?如何解决 firebase 函数控制台中的 "status":{"code":3,"message":"INVALID_ARGUMENT"} 错误?
【发布时间】:2020-05-23 12:22:24
【问题描述】:

我正在使用 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);

当我尝试运行 firebase deploy 时,firebase 函数日志显示此错误:

如何解决这个错误?我一直在关注这个 youtube 教程链接:Youtube social networking website tutorial with react and firebase,大约 42.55 分钟,这个家伙使用了 firebase 身份验证,并在项目设置中复制了一个代码,这对我来说似乎有所不同(显然我并不期待相同的 api 密钥等,但是格式,它实际上要求我添加一个网络应用程序,但不是在教程中)当我完成完全相同的步骤时,我的 sn-p 看起来像我在上面的代码 sn-p 中给出的const firebaseconfig。 我的 VS 代码说:

错误:函数未正确部署。

【问题讨论】:

    标签: javascript reactjs firebase firebase-authentication google-cloud-functions


    【解决方案1】:

    在云函数中,如果您想与其中一项 Firebase 服务(Auth、Firestore、云存储等)进行交互,则需要使用 Admin SDK

    因此,您需要按如下方式调整代码:

    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}) });
    });
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      相关资源
      最近更新 更多