मैंने Google के आसपास किया और कुछ कोड की कोशिश की लेकिन काम नहीं किया, क्योंकि हर बार जब मैं क्लाउड फ़ंक्शंस को फायरबेस में तैनात करता हूं, तो इसमें लगभग 30 सेकंड - 1 मिनट लगते हैं, मुझे लगता है कि यह समय की पूरी बर्बादी है अगर मैं इंटरनेट से कोड का प्रयास करना जारी रखता हूं

तो, मुझे इस तरह क्लाउड फ़ंक्शन लिखना होगा:

    const admin = require('firebase-admin');
    module.exports = function (request, response) {
        const { message } = request.body;

        // Now, store `message` into firebase storage
        // path is: /messages/new_message, where `new_message`
        // is NOT a folder, but the file that contains `message`
    }

मेरे पास एक समाधान है, लेकिन जाहिर है, यह एक बुद्धिमान विकल्प नहीं है, मेरा मतलब है, मैं हमेशा firebase पैकेज स्थापित कर सकता हूं, फिर initializeApp(...) पर कॉल कर सकता हूं, फिर firebase.storage().ref()...। क्या इसे करने का और कोई तरीका है? क्या आप कृपया इसे विस्तृत करने के लिए थोड़ा कोड लिख सकते हैं?

1
K.Wu 15 नवम्बर 2017, 06:07

1 उत्तर

सबसे बढ़िया उत्तर

आप @google-cloud/storage मॉड्यूल का उपयोग करना चाहेंगे।

// Creates a GCS client,
const storage = new Storage();

module.exports = function (req, res) {
    const { message } = req.body;
    const bucket = storage .bucket('projectid.appspot.com');
    const file = bucket.file('myFolder/myFilename');
    // gcloud supports upload(file) not upload(bytes), so we need to stream.
    const uploadStream = file.createWriteStream();
        .on('error', (err) => {
            res.send(err);
        }).on('finish', () => {
            res.send('ok');
        }
    uploadStream.write(data);
    uploadStream.end();    
}

मेरा parse-server GCS अडैप्टर उदाहरण के लिए।

2
Mike McDonald 21 नवम्बर 2017, 18:36