繁体   English   中英

如何做云 function firebase 将数据从 Bucket 实时导入数据库

[英]how to do a cloud function firebase importing data from Bucket to database realtime

我尝试使用此代码,但它不起作用,我需要做一个云 function firebase 将数据从存储桶实时导入数据库

exports.getbackups = functions.runWith({ memory: "128MB", timeoutSeconds: 60, }).https.onRequest(async (req, res) => {
      res = FirebaseServices.setHeaders(res);
      let send = await FirebaseServices.verifyIdToken(req);
      var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    
        const url = 'https://storage.cloud.google.com/report-transfer-data/2022-08-01T11%3A12%3A57Z_sp200200011002-report_data.json.gz?authuser=1'
        const xhr = new XMLHttpRequest();
        xhr.responseType = 'blob';
        xhr.onload = (event) => {
          const blob = xhr.response;
        };
        xhr.open('GET', url);
        xhr.send();
    
        const baseReport = document.getElementById('baseReport');
        baseReport.setAttribute('src', url);
    
    });

在您的云 Function 中,您需要通过管理员 SDK 与云存储服务进行交互。

特别是,您会在SDK 参考中找到有关如何将文件下载到 CF memory的示例,然后您可以使用其内容写入 RTDB。

大致如下:

exports.getbackups = functions.runWith({ memory: "128MB", timeoutSeconds: 60, }).https.onRequest(async (req, res) => {
    
    const filePath = ...;  // file path in Cloud Storage without the gs://
    
    const file = admin
    .storage()
    .bucket()
    .file(filepath);
    
    const downloadResponse = await file.download();
    const contents = downloadResponse[0];
    
    // Do what you want with contents
    
    res.send(....);  // Terminate the HTTPS Cloud Function
    // Correctly terminating your CF is important. See https://firebase.google.com/docs/functions/terminate-functions
    // and in particular the embedded videos
  
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM