>source

저는 Firebase를 처음 사용하고 가이드를 따라가는 비교적 멍청한 사람입니다. 튜토리얼은 약간 구식이며 진행하면서 버그를 수정했지만이 튜토리얼은 나를 완전히 멈췄습니다. 문서가 생성 될 때 트리거되는 다른 기능을 실행하려고합니다. 특정 컬렉션에서. 그러나 다음과 같은 오류가 발생합니다.

오류

!  functions[createNotificationOnlike(us-central1)]: Deployment error.
Function failed on loading user code. Error message: Error: please examine your function logs to see the error cause: https://cloud.google.com/functions/docs/monitoring/logging#viewing_logs

다음 index.js 파일에는 다른 내보내기에 해당하는 동일한 오류가 3 개 더 있습니다.

Index.js

exports.createNotificationOnlike= functions.firestore.document('likes/{id}').onCreate(async (snapshot)=> {
    try {
        const doc= await db.doc(`posts/${snapshot.data().postId}`).get(); //we have access to user handle via the likes route
        if(doc.exists){
            await db.doc(`notifications/${snapshot.id}`).set({ //the id of the like is the same as the id of the notification that pertains to the like
                createdAt: new Date().toISOString,
                recipient: doc.data.userHandle,
                sender: snapshot.data().userHandle,
                type: 'like',
                read: false,
                postId: doc.id
            });
            return;
        }
    } catch (err) {
        console.error(err);
        return;
    }
});
exports.removeNotificationOnUnlikePost= functions.firestore.document('likes/{id}').onDelete( async (snapshot)=> {
    try {
        await db.doc(`notifications/${snapshot.id}`).delete();
        return;
    } catch (err) {
        console.error(err);
        return;
    }
})
exports.createNotificationForComments= functions.firestore.document('comments/{id}').onCreate(async (snapshot)=> {
    try {
        const doc= await db.doc(`posts/${snapshot.data().postId}`).get();
        if(doc.exists){
            db.doc(`notifications/${snapshot.id}`).set({
                createdAt: new Date().toISOString,
                recipient: doc.data.userHandle,
                sender: snapshot.data().userHandle,
                type: 'comment',
                read: false,
                postId: doc.id
            })
            return;
        }
    } catch (err) {
        console.error(err);
        return; //we dont need return messages since this isnt an endpoint it is a db trigger event
    }
})
//auto turn the app into base route url/api
exports.api= functions.https.onRequest(app);

오류가 제안한대로 로그를 확인했는데 쓸모 없다고 생각하는 다음 메시지가 표시됩니다. 다른 기능에 대해 동일한 오류가 세 개 있습니다.

오류 로그

removeNotificationOnUnlikePost
{"@type":"type.googleapis.com/google.cloud.audit.AuditLog","status":{"code":3,"message":"Function failed on loading user code. Error message: Error: please examine your function logs to see the error cause: https://cloud.google.com/functions/docs/monitoring/logging#viewing_logs"}

다음은 내 package.json 파일입니다.

Package.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase emulators:start --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "10"
  },
  "dependencies": {
    "busboy": "^0.3.1",
    "express": "^4.17.1",
    "firebase": "^7.16.0",
    "firebase-admin": "^8.10.0",
    "firebase-functions": "^3.6.1"
  },
  "devDependencies": {
    "firebase-functions-test": "^0.2.0"
  },
  "private": true
}

마지막으로 모든 것을 초기화하는 데 사용 된 구성 항목은 다음과 같습니다.

admin.js

const admin= require('firebase-admin');
var serviceAccount= require('../../service-acct/socialapp-e5130-firebase-adminsdk-uo6p6-5495e18b97.json');
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    storageBucket: "socialapp-e5130.appspot.com",
    databaseURL: "https://socialapp-e5130.firebaseio.com"
});
const db= admin.firestore();
module.exports= { db, admin }

Firebase 초기화

const firebase= require('firebase');
const config= require('../util/config.js');
firebase.initializeApp(config);

추신 http.onRequest 트리거 (api)가 실제로 작동했고 firebase serve를 사용하여 배포하지 않고 개발 중이라는 점을 언급 할 가치가 있습니다. 이제 이러한 트리거를 배포 할 준비가되었으므로 뭔가 심각한 문제가 발생합니다. 어떤 도움이라도 대단히 감사합니다

오류 메시지가 도움이되지 않으면 Firebase 지원팀에 직접 문의하여 도움을 받으세요. support.google.com/firebase/contact/support

Doug Stevenson2021-02-22 04:31:41

관련 자료

  • 이전 common lisp - 함수를 점선 쌍으로 매핑
  • 다음 javascript - 두 필드로 계산 된 객체 및 배열 정렬