typescript - '{ action: string; 类型的参数 过期:字符串;}' 不可分配给“GetSignedUrlConfig”类型的参数
问题描述
我正在尝试检索上传的新文件的下载 url,以便将其写入我的数据库。我已经关注了这个答案和官方文档,但我的函数出现了错误。
这些是我的进口:
import * as functions from "firebase-functions";
import * as admin from "firebase-admin";
import { FieldValue } from "@google-cloud/firestore";
import { _namespaceWithOptions } from "firebase-functions/lib/providers/firestore";
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
const defaultStorage = admin.storage();
这是目前我想要的云功能:
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,而您所指的示例是使用 JavaScript。GetSignedUrlConfig
您应该按如下方式导入类型:
import { GetSignedUrlConfig } from '@google-cloud/storage';
做
const options: GetSignedUrlConfig = {
action: 'read',
expires: '03-17-2025'
};
推荐阅读
- java - 将 Firestore 与 JavaFX Maven 应用程序集成时出错(IntelliJ Idea)
- c - 无符号位域值与有符号值的比较
- python - Python NumPy - 3D 数组的角度切片
- django - 在序列化程序和表单中重命名模型的字段 - Django
- java - MapsActivity.java 不适用于高于 6.0 的 android 版本
- ios - 目标 C:NSDictionnary 无序
- java - spring boot 启动报错 BOOT-INF/classes not found
- java - 通过 JMockit 为每个集成测试清除模拟
- node.js - 如何使用 ASK-SDK v2 中的 handlerInput 获取自定义意图槽值
- r - R:从矩阵中提取一个圆