带有Firebase后端的Ember.js:更改Firebase自动生成的模型ID

时间:2016-08-15 01:29:14

标签: javascript ember.js firebase firebase-realtime-database

我正在建立一个以Ember.js和Firebase(EmberFire)为后端的个人网站。我已连接Firebase,我可以创建记录等,然后在Firebase控制台中查看记录。

我为自己的网站建立了自己的帖子系统,用于个人帖子和诸如此类的东西。我想在/posts/:post_id为我的帖子设置一条动态路线,其中:post_id是帖子的标题。我一直在关注Ember教程,并且在我的模型中已经拥有了我需要的所有属性(比如一个标题)。但是,每当我创建记录并将数据发送到Firebase数据库时,Firebase会自动生成一个帖子ID,如下所示:

posts
 -KP3SRMcfGCXW1hz-c1W
 -KP3a-6nr9C_gqPMTnFO
 -KP53U2pxOZw1gCewBXM
 -KPAde4QmamjrrNpVhhn
 -KPAeXaxty4p5uWbBvE8
 -KPAetgYyKFZMVCl9h9l
 -KPAh0JZt6GvLqhpEnIG
 -KPAh8vrKNaPLYZGbkvq

因此,如果我有一个名为" hello first post"的帖子,我无法转到/posts/hello-first-post,但如果该帖子有ID -KPAh8vrKNaPLYZGbkvq,我可以去到/posts/-KPAh8vrKNaPLYZGbkvq它会起作用。我已经生成了动态路线,这就是后一种选择有效的原因。

我想知道如何更改此内容,以便我可以拥有帖子的动态路由,而不是Firebase自动生成的ID。

例如,我想要这个工作:

{{link-to post.title "post" post.dasherizedTitle}}

我已经有一条路由到/ posts /:post_id,因此link-to helper正在生成正确的链接。但是没有任何内容,因为Firebase自动生成了帖子ID。

1 个答案:

答案 0 :(得分:0)

你可以在firebase上使用put而不是post,put会没有自动生成的数据,push会有自动生成的id,因为它是一个数组