17

फ़ायरबेस के लिए हमारे सभी क्लाउड फ़ंक्शंस को व्यवस्थित करने का सबसे अच्छा अभ्यास क्या है?फ़ायरबेस के लिए क्लाउड फ़ंक्शंस व्यवस्थित करें

मैं sample GitHub repository कि सभी कार्यों के लिए एक एकल index.js फ़ाइल में रहते हैं से देखते हैं।

मुझे लगता है कि बड़ी परियोजना के लिए विभिन्न फाइलों/निर्देशिका में फायरबेस के लिए क्लाउड फ़ंक्शंस को व्यवस्थित करने के लिए एक बेहतर तरीका है।

+3

यह राय का विषय है और स्टैक ओवरफ़्लो के लिए उपयुक्त नहीं है। हालांकि, आपको पता होना चाहिए कि आप अन्य फ़ाइलों से कोड को index.js में खींचने के लिए आवश्यकता() फ़ंक्शन का उपयोग कर सकते हैं। उसके बाद, संगठन जो भी आप चाहते हैं। –

+0

धन्यवाद @ डौगस्टवेसन, यह मेरा प्रश्न है। –

+1

मेरा उदाहरण यहां देखें: http://stackoverflow.com/questions/42726310/how-to-test-firebase-functions-locally-on-pc/42729988#42729988 यह क्लाउड फ़ंक्शंस के कुछ पुराने संस्करण से है, लेकिन अवधारणाएं अभी भी वही काम करते हैं। –

उत्तर

4

मैं एक फ़ोल्डर triggers बुलाया में प्रदाता और संसाधन के आधार पर अपने ईवेंट हैंडलर्स आयोजन करते हैं। जैसे जहां auth प्रदाता है और user संसाधन है; फ़ोल्डर functions/triggers/auth/user में onCreate.js और onDelete.js है, जो क्रमशः उपयोगकर्ता का स्वागत करता है और साफ़ करता है।

+--/auth 
| +--/user 
|  +--/onCreate.js 
|  +--/onDelete.js 
+--/database 
+--/storage 

आप require फ़ंक्शन का उपयोग करके एक विशेष ट्रिगर निर्यात कर सकते हैं:

exports.onCreateAuthUser = require('./triggers/auth/user/onCreate');  
exports.onDeleteAuthUser = require('./triggers/auth/user/onDelete'); 

मैं एक कदम आगे चला गया और एक स्क्रिप्ट है कि स्वचालित रूप से मेरे लिए काम करता है निर्यात करता है बनाया। मैं फ़ाइलों का विस्तार f.js पर बदलता हूं और ट्रिगर निर्देशिका को फिर से खोजता हूं। प्रत्येक फ़ाइल के लिए, फ़ंक्शन का नाम निर्देशिका और फ़ाइल पथ को तोड़कर concocted है।

यह संरचना firebase-functions एनपीएम पैकेज के आंतरिक निरीक्षणों से प्रेरित थी।

0

आप अपनी index.js फ़ाइल पर export { functionName } from './file' जैसे कुछ का उपयोग कर सकते हैं।

/functions/index.js
// This is the main entry point for the app written in ES that is compatible with node lts 
import * as functions from 'firebase-functions'; 

export { sendWelcomeEmail } from './userEmails'; 

exports.helloWorld = functions.https.onRequest((request, response) => { 
    let helloMsg = `Hello!`; 
    response.send(helloMsg); 
}); 
संबंधित मुद्दे