7

VS Code एकीकृत टर्मिनल से मैं डिबग टैब मैं डिफ़ॉल्ट launch.json बनाई में firebase serve --only functions,hosting तो चलाएँ:कार्य डिबगिंग

{ 
    "version": "0.2.0", 
    "configurations": [ 
    { 
     "type": "node", 
     "request": "launch", 
     "name": "Launch Program", 
     "program": "${file}" 
    } 
    ] 
} 

मैं सर्वर साइड डिबग करने के लिए चाहते हैं (कार्य/index.js) ग्राहक पक्ष नहीं।

मैंने https://code.visualstudio.com/docs/nodejs/nodejs-debugging से कोई भाग्य के साथ कुछ कॉन्फ़िगरेशन करने का प्रयास किया है।

वीएस कोड में फायरबेस फ़ंक्शन कैसे डिबग करें?

+0

यूनिट परीक्षणों के माध्यम से डिबगिंग शायद आपका सबसे अच्छा विकल्प है: https://firebase.google.com/docs/functions/unit-testing –

+0

पसंदीदा विकल्प नहीं है, लेकिन अगर केवल एक ही काम कर रहा है तो मैं उसके साथ जाऊंगा । –

उत्तर

3

आप पहले फायरबेस कॉन्फ़िगरेशन चर को परिभाषित किए बिना फायरबेस फ़ंक्शन डीबग नहीं कर सकते हैं। फायरबेस सीएलआई आपके लिए यह करता है।

डीबग करने के लिए आप उसी चाल की कोशिश कर सकते हैं जैसे आप फायरबेस फ़ंक्शन यूनिट परीक्षण के लिए करेंगे।

  1. स्थापित करें:

    admin.initializeApp = function() {} 
    functions.config = function() { 
        return { 
         firebase: { 
          databaseURL: 'https://not-a-project.firebaseio.com', 
          storageBucket: 'not-a-project.appspot.com', 
         } 
        }; 
    } 
    

    आप किसी भी अन्य google क्लाउड समारोह के रूप में एक ही तरीके से अब Firebase कार्यों डिबग कर सकते हैं:

    index.js फाइल करने के लिए लाइनों इससे पहले कि आप फोन admin.initializeApp(functions.config().firebase) निम्नलिखित

    जोड़ें क्लाउड फ़ंक्शंस एमुलेटर:

    npm install -g @google-cloud/functions-emulator 
    
  2. सेंट

    functions deploy helloWorldFunction --trigger-http 
    

    आप इस तरह उत्पादन मिल जाएगा:

    Waiting for operation to finish...done. 
    Deploying function........done. 
    Function helloWorldFunction deployed. 
    
    Property | Value 
    ---------|------------------------------------------------------------------------ 
    Name  | helloWorldFunction 
    Trigger | HTTP 
    Resource | http://localhost:8010/helloWorldProject/us-central1/helloWorldFunction 
    
  3. मानक Node.js डिबगर प्रकार का उपयोग करने के लिए डिबग

    functions start 
    
  4. अपने कार्य तैनात: एम्यूलेटर कला:

    functions debug helloWorldFunction 
    

    आप मिल जाएगा:

    Debugger for helloWorldFunction listening on port 5858. 
    
  5. अब निम्नलिखित लाइनों अपने launch.json को कोड

    वी.एस. अपने वी.एस. संहिता में
    { 
        "version": "0.2.0", 
        "configurations": [ 
         { 
          "name": "Node.JS (local)", 
          "type": "node", 
          "request": "attach", 
          "port": 5858 
         } 
        ] 
    } 
    
  6. प्रारंभ डिबगिंग जोड़ने और URL कॉल करते समय हो गया गया है द्वारा अपने कार्य को गति प्रदान चरण # 3 पर।

    आप टर्मिनल में functions call helloWorldFunction टाइप करके फ़ंक्शन को ट्रिगर भी कर सकते हैं।

अधिक जानकारी के लिए यहां दिए गए निर्देशों का संदर्भ लें Cloud Functions Local Emulator

+0

तैनात करने की कोशिश करते समय मुझे त्रुटियां मिलती हैं।मैं Google पर खोज करता हूं, कुछ भी मदद नहीं करता, मैं हार मानता हूं। –

+0

हाय एंड्रयू! आपका जवाब बहुत बढ़िया था, लेकिन मुझे इसे काम करने के लिए कुछ सुधार करना पड़ा। सबसे पहले, लाइन "admin.initializeApp = function() {}" हटा दी जानी चाहिए; यह वास्तव में admin.initializeApp को अगली कॉल को बेकार बनाता है। दूसरा, कृपया स्पष्ट करें कि-a-project.firebaseio.com में आपके फ़ायरबेस ऐप में सही पता होना चाहिए; यह प्रोजेक्ट नाम के साथ थोड़े अस्पष्ट है। आखिरकार, firebase ऑब्जेक्ट के अंदर functions.config में मुझे 'क्रेडेंशियल: admin.credential.applicationDefault()' सेट करना पड़ा। इन संशोधनों के साथ मैं वीएससीओडी –

+0

पर एमुलेटर चलाने और डीबग करने में सक्षम था, मुझे आश्चर्य है कि आप जीसीपी फ़ंक्शंस एमुलेटर को स्थापित करने और उपयोग करने का सुझाव देते हैं जब फ़ायरबेस फ़ंक्शन एमुलेटर पहले ही इंस्टॉल हो जाएगा। मुझे लगता है कि वे काफी समान हैं लेकिन एफबी फ़ंक्शंस का उपयोग करते समय एफबी फ़ंक्शंस टूल/एमुलेटर का उपयोग करना अधिक समझ में आता है। – Tom

संबंधित मुद्दे