【问题标题】:Firebase Cloud function-Get document snapshot field which is the URL of a file in firebase storage and delete the file from firebase storage - jsFirebase Cloud功能-获取文档快照字段,这是firebase存储中文件的URL并从firebase存储中删除文件-js
【发布时间】:2022-02-08 13:51:11
【问题描述】:

我想从文档快照中检索字段值,该文档快照是 firebase 存储中文件的 URL,如果文档的创建时间在 24 小时之前,则从 firebase 存储以及 firestore 文档中删除该文件。

我可以使用以下代码成功删除过期的 Firestore 文档:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const { firestore } = require("firebase-admin");
admin.initializeApp();

exports.removeExpiredDocuments = functions.pubsub.schedule("every 1 hours").onRun(async (context) => {
  const db = admin.firestore();
  const now = firestore.Timestamp.now();
  const ts = firestore.Timestamp.fromMillis(now.toMillis() - 86400000); // 24 hours in milliseconds = 86400000

  const snapshots = await db.collection("photos").where("timestamp", "<", ts).get();
  let promises = [];
  snapshots.forEach((snap) => {
    promises.push(snap.ref.delete());
  });
  return Promise.all(promises);
});

但我不知道如何从 forEach 块内的文档快照中检索字段值(文件的 URL)并从 firebase 存储中删除文件。

这是 firestore 数据库:

要获取photourl的字段值

提前致谢!

【问题讨论】:

    标签: node.js firebase google-cloud-firestore google-cloud-functions google-cloud-storage


    【解决方案1】:

    我认为代码看起来像:

    //some code ....
        snap.docs.map((doc) => {
        if (doc.exist) {
           var url = doc.data().photourl;
           //do something logic call to firestorage and deleted data base on url get 
           //write logic deleted url firebase after deleted success firestorage           
        }
    
      });
    

    【讨论】:

      猜你喜欢
      • 2021-07-07
      • 2022-01-02
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 1970-01-01
      • 2018-10-01
      相关资源
      最近更新 更多