Node.js 类似的方法getReferenceFromUrl(来自Java客户端)用于云函数。。。存在?

Node.js 类似的方法getReferenceFromUrl(来自Java客户端)用于云函数。。。存在?,node.js,firebase,google-cloud-functions,google-cloud-storage,firebase-storage,Node.js,Firebase,Google Cloud Functions,Google Cloud Storage,Firebase Storage,我有一个函数可以使用pub/sub从firebase中删除文档,但是,在删除文档(使用文档引用)之前,我希望获取保存在该文档字段中的链接的存储引用 为了让它更简单,我将举例说明,有一个文档Joseph包含字段 用户名:“约瑟夫”;性别使用者:“男性” 和urlProfileUser:“下载到已上载存储映像的任何有效链接” 在删除文档之前,我想从所选文档中获取此字段,通过链接获取引用(在Java中,我使用storage.getReferenceFromUrl(urlProfileUser)),并通

我有一个函数可以使用pub/sub从firebase中删除文档,但是,在删除文档(使用文档引用)之前,我希望获取保存在该文档字段中的链接的存储引用

为了让它更简单,我将举例说明,有一个文档Joseph包含字段
用户名:“约瑟夫”;性别使用者:“男性”
urlProfileUser:“下载到已上载存储映像的任何有效链接”

在删除文档之前,我想从所选文档中获取此字段,通过链接获取引用(在Java中,我使用
storage.getReferenceFromUrl(urlProfileUser)
),并通过该链接从存储中删除该照片,这样,我就可以从firestore中删除该文档

用于删除所需文档的云函数的代码: (我现在只需要删除存储链接引用的图像…)

import*作为“firebase函数”中的函数
从“firebase管理员”导入*作为管理员;
admin.initializeApp();
//计划作业每天23:00执行
exports.removeUsersUnavailable=functions.pubsub.schedule('0 23***').onRun((上下文)=>
{
const db=admin.firestore();
const dateEvent=Date.now();
const cutOff=dateEvent-24*60*60*1000;//24小时(一天)后删除文档
db.collection(“userManagers”).orderBy(“dateCreated”).endAt(截止)
.get()
。然后(快照=>{
if(snapshot.empty){
log(“没有过期的内容”);
返回;
}        
snapshot.forEach(doc=>{
//控制台日志(doc.id,=>,doc.data);
console.log(“过期,删除日期”);
//在这里,我应该从存储器中删除照片,因为我当时已经有了文档数据
{...} {                
console.log('文档删除成功',响应);
})
.catch(错误=>{
console.log('数据删除时出错',错误);
});            
});            
})        
.catch(错误=>{
log('获取文档时出错',错误);
}); 
});

我正在使用typescript编写云函数

云存储服务器SDK不提供与getReferenceFromUrl等效的功能。这只是一个客户端SDK操作


您可能应该改为将文件的完整路径与URL一起存储在存储桶中,并使用该路径删除对象,而不是使用客户端SDK生成的URL。因此,对于Android客户端,您将存储的值,然后将其提供给storage SDK,用于构建另一个引用。

非常感谢您的回答,我真的不明白为什么服务器端会有限制,但您的指导原则会帮到我很多,祝您愉快!这并不是对服务器的真正限制。下载URL是客户端Firebase SDK独有的功能。云存储服务有许多其他不同的生成下载URL的方法。在我的特定情况下,我应该在cron作业触发后删除文档时一起删除图像,就像在sql中触发器所做的那样。在CFi got now中,这对我更有用,我写了一个名为“storageRef”的字段,并保存在图像路径上,在云函数中,我从字段文档的ref中删除了此图像,谢谢