类型参数'{action:string;过期:字符串; }'不可分配给'GetSignedUrlConfig'类型的参数

问题描述 投票:0回答:1

我正在尝试检索上传的新文件的下载URL,以便可以将其写入数据库。我同时跟踪了this answerofficial docs,但是我的函数出现错误。

当前这是我想要的云功能:

exports.writeFileToDatabase = functions.storage
  .object()
  .onFinalize(object => {
    const bucket = defaultStorage.bucket();
    const file = bucket.file(object.name as string);

    const options = {
        action: 'read',
        expires: '03-17-2025'
      };

    return file.getSignedUrl(options)
    .then(results => {
      const url = results[0];

      console.log(`The signed url is ${url}.`);
      return true;
    })
  });

但是将options传递到getSignedUrl时出现此错误:

Argument of type '{ action: string; expires: string; }' is not assignable to parameter of type 'GetSignedUrlConfig'

[我也收到results的错误提示:

Parameter 'results' implicitly has an 'any' type

我作为参考的示例看不到我在做什么。

typescript firebase google-cloud-functions firebase-storage
1个回答
0
投票

这是因为您正在使用TypeScript,而您所引用的示例正在使用JavaScript。您应该按如下所示导入类型GetSignedUrlConfig

import { GetSignedUrlConfig } from '@google-cloud/storage';

和做

const options: GetSignedUrlConfig = {
  action: 'read',
  expires: '03-17-2025'
};
© www.soinside.com 2019 - 2024. All rights reserved.