【问题标题】:nodejs firebase firestore - Function failed on loading user code. Error message: Error: please examine your function logs?nodejs firebase firestore - 加载用户代码时函数失败。错误消息:错误:请检查您的功能日志?
【发布时间】:2020-08-25 12:35:51
【问题描述】:

我无法找出导致这些错误的原因,有专家吗?

部署错误。 加载用户代码时函数失败。错误信息:错误:请检查您的函数日志以查看错误原因:https://cloud.google.com/functions/docs/monitoring/logging#viewing_logs

登录 firebase 函数:

错误:函数终止。建议的操作:检查日志以了解终止原因。函数无法初始化。

代码如下






var serviceAccount = require("./workservices-e4506-firebase-adminsdk-gawgy-6d4c6a39a1.json");

// admin.initializeApp({
//   credential: admin.credential.cert(serviceAccount),
//   databaseURL: "https://workservices-e4506.firebaseio.com"
// });

admin.initializeApp();

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

const firebase = require('firebase');

  
const firebaseConfig = {
    apiKey: "AIzaSyBEkSLuI3itUsX3iIhvDnnHHT7WoCT76qI",
    authDomain: "workservices-e4506.firebaseapp.com",
    databaseURL: "https://workservices-e4506.firebaseio.com",
    projectId: "workservices-e4506",
    storageBucket: "workservices-e4506.appspot.com",
    messagingSenderId: "232325006209",
    appId: "1:232325006209:web:da0aca044337ef4b119e80",
    measurementId: "G-K8BRW9Y8HL"
  };

//gives error when deploying
firebase.default.initializeApp(firebaseConfig);













app.get('/JobPosts', (req, res) => {
    admin.firestore().collection('JobPosts').orderBy('createdAt','desc').get()
    .then(data => {
        let jobPosts = [];
        data.forEach(doc => {


            // jobPosts.push(doc.data())

            jobPosts.push({
                jobId: doc.id,
                ...doc.data()
            });

        });
    return res.json(jobPosts);
    })
    .catch(err => console.error(err));
    });






app.post('/createJobPost', (req, res) => {

const newJob = {
    jobDescription: req.body.jobDescription,
    jobTitle: req.body.jobTitle,
    createdAt: new Date().toISOString()
};

admin.firestore().collection('JobPosts').add(newJob)
.then(docRef => {
res.json({message: `document ${docRef.id} created succesfully`})
})
.catch(err => {
    //500 server error
    res.status(500).json({error: 'something went wrong'})
    console.error(err)
})
    });





///////////////////////Lesson 5 ////////////////////////////////


//sign up route

app.post('/signup', (req, res) => {

    const user = {
    email: req.body.email,
    password: req.body.password,
    confirmPassword: req.body.confirmPassword,
    username:req.body.username
};


firebase.firestore().doc(`/users/${user.username}`).get()
.then((doc) => {

if(doc.exists){
    ///bad request
    return res.status(400).json({
        username: 'this username is already taken'});
} else {
    return firebase.auth().createUserWithEmailAndPassword(user.email,user.password)
}
})
.then((data) =>{
   return  data.user.getIdToken();

})
.then(token =>{
    // 201 status code indicates that a request was successful and as a result a resource has been created
    return res.status(201).json({ token });
})

.catch((err) => { 
    console.error(err);
    return res.status(500).json({error: err.code });
    })

});
///////////////////////Lesson 5 ////////////////////////////////


  exports.api = functions.region('australia-southeast1').https.onRequest(app);

【问题讨论】:

    标签: node.js firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    如果这是您的 index.js 文件的全部内容,则您缺少声明云函数的代码。有关如何添加的更多信息,请参阅文档中的 minimal example

    除此之外,您还尝试在文件中初始化 Firebase Admin SDK 和客户端 SDK,这既不需要也不支持。在 Cloud Functions 中,您应该只使用 firebase-admin,因此请删除您发布的代码中 const firebase = require('firebase'); 及以下的所有内容。

    【讨论】:

    • 其实这里的最后一行声明了使用快递应用程序的功能。
    • 糟糕......我完全错过了滚动条。谢谢你抓住那个。尽管如此,这仍然留下了两个 SDK,我怀疑这是问题的一部分。
    猜你喜欢
    • 2020-10-31
    • 1970-01-01
    • 2020-10-15
    • 2019-09-20
    • 2019-10-27
    • 1970-01-01
    • 2022-12-22
    • 2021-11-06
    • 2019-12-24
    相关资源
    最近更新 更多