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

Ember.js with Firebase backend: change Firebase's auto-generated model IDs

本文关键字:Firebase 模型 自动生成 id 更改 js 后端 Ember 带有      更新时间:2023-09-26

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

我正在为我的网站建立我自己的帖子系统,用于个人帖子和其他东西。我想为我在/posts/:post_id的帖子提供一个动态路由,其中:post_id是帖子的虚线标题。我一直在遵循Ember教程,并且已经在我的模型中拥有了我需要的所有属性(如虚线化的标题)。但是,每当我创建一条记录并将数据发送到Firebase数据库时,Firebase都会自动生成一个post id,如下所示:

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

所以如果我有一个名为"你好第一个帖子"的帖子,我不能去/posts/hello-first-post,但如果该帖子的ID是-KPAh8vrKNaPLYZGbkvq,我可以去/posts/-KPAh8vrKNaPLYZGbkvq,它会工作。我已经生成了动态路由,这就是为什么后一个选项可以工作。

我想知道我如何才能改变这一点,这样我就可以有帖子的动态路由而不是由Firebase自动生成的id。

例如,我想让它工作:

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

我已经有一个post路由路由到/posts/:post_id,所以链接到助手正在生成正确的链接。但是这里什么都没有因为Firebase有它自己自动生成的post ID

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