为firebase数据库推送格式正确的对象

时间:2017-09-15 03:37:14

标签: typescript firebase firebase-realtime-database

我想在firebase db上使用以下结构。

"thumbnails": {
    "72": "http://url.to.72px.thumbnail",
   "144": "http://url.to.144px.thumbnail"
}

我很难正确地在结构中获得键72,144,因为它们是在推送到db之前的计算值。它们代表图像的像素。

let pixel = this.calcPixels();

let obj = ?????

var updates = {};
updates['/guid/thumbnails/'] = obj;

let masterRef = this.db.database.ref();
masterRef.update(updates);

我想要做的是以下内容,但这显然不起作用。

let obj = { pixel : this.getUrl()}

我可以创建一个要发送的类,但类成员名称(pixelx,urlx)最终将成为服务器上的密钥。

class PixelData{
  pixelx:number;
  urlx:string;

  constructor(p:number,u:string){
    this.pixelx = p;
    this.urlx = u;
  }
}

设置此obj会产生以下结果(推送 - 在缩略图下使用firebase push id)

"thumbnails": {
  "pixelx": 72
  "urlx": "http://url.to.72px.thumbnail",
}

感谢。

1 个答案:

答案 0 :(得分:1)

只需更改

let obj = { pixel : this.getUrl()}

let obj = { [pixel] : this.getUrl()}

在你的情况下,它将像素作为字符串,而在后一种情况下,它将采用像素变量的值。