Firebase:云函数+存储读取文件

Firebase: Cloud Functions + Storage Read File

我目前正在 Firebase Functions 中编写一个函数,以便在我的 Firebase 移动应用程序中调用。我有调用函数的代码,但我不知道如何让这个函数与 Firebase 存储交互。

我有一个 JSON 文件 (300KB) public 非敏感信息存储在 Firebase 存储桶中。根据用户输入,我将 select 此 JSON 文件的特定属性和 return 结果提供给用户。但是,我不知道如何从我的 Firebase 函数代码中读取这个文件。我该怎么做?另外,如果有人知道更划算的方法,请告诉我!!

exports.searchJSON = functions.https.onCall((data, context) => {
    const keyword = data.searchTerm
    //search the JSON file that is present in the storage bucket
    //save the sliced JSON object as a variable
    //return this to the user
})

您有 2 个选项可以使用。请参阅下面的选项。

  1. Firebase 管理员

    const { initializeApp } = require('firebase-admin/app');
    const { getStorage } = require('firebase-admin/storage');
    
    initializeApp({
      storageBucket: '<BUCKET_NAME>.appspot.com'
    });
    
    const bucket = getStorage().bucket().file("<FILE-PATH>")
    .download(function (err, data) {
        if (!err) {
            var object = JSON.parse(data)
            console.log(object);
        }
    });
    

    确保您已安装 Admin SDK module

    npm i firebase-admin
    
  2. Google 云存储 SDK

    const {Storage} = require('@google-cloud/storage');
    
    const storage = new Storage();
    const fileBucket = '<BUCKET-NAME>.appspot.com';
    const filePath = '<FILE-PATH>';
    const bucket = storage.bucket(fileBucket);
    const file = bucket.file(filePath);
    
    file.download()
    .then((data) => {
    const object = JSON.parse(data);
    console.log(object);
    });
    

    确保您已经安装了 @google-cloud/storage 模块:

    npm i @google-cloud/storage
    

有关更多信息,您可以查看这些文档: