Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript对象的类型未知,firebase函数_Typescript_Firebase_Function - Fatal编程技术网

Typescript对象的类型未知,firebase函数

Typescript对象的类型未知,firebase函数,typescript,firebase,function,Typescript,Firebase,Function,我对firebase函数的函数有一个问题,它是用typescript编写的 首先,我有一些背景信息: 实时数据库的/tokens ref的数据结构: Tokens: [ TOKENS_ID: { token: String }, ] 以下代码给了我编译错误: export const onBlogPost = functions.database.ref("/blogs/{bid}") .onCreate((blogData) => {

我对firebase函数的函数有一个问题,它是用typescript编写的

首先,我有一些背景信息:

实时数据库的/tokens ref的数据结构:

Tokens: [
     TOKENS_ID: {
           token: String
},
]
以下代码给了我编译错误:

export const onBlogPost = functions.database.ref("/blogs/{bid}")
.onCreate((blogData) => {
  console.log(JSON.stringify(blogData.val()));
  admin.database().ref("/tokens").once("value")
      .then((snapshot) => {
        const data = snapshot.val();
        const tokens = Object.values(data).map((value) => {
          console.log(JSON.stringify(value));
          const token = value.token;
          return token;
        });
        return console.log(JSON.stringify(tokens));
      });
});
问题出在
.then((snapshot)=>{…}
部分中。这部分代码的目标是将数据快照中的所有对象转换为仅包含令牌的单个数组

编译错误发生在具有以下代码的行上:

const token = value.token;
编译错误如下:

src/index.ts(14,29): error TS2571: Object is of type 'unknown'.
正确的解决方案是什么?我曾尝试在
map()
中为变量值分配一个类型,但最终失败。

强制类型为:

const token: string = value.token;


我已经尝试了这两种方法,但它们似乎都不起作用,然后强制将值解析为:
const-token:string=JSON.parse(JSON.stringify(value.token))
。这必须起作用。
const token = value.token as string;