Javascript 在Firebase中写入数据后读取数据
在实时数据库中创建项目后,我尝试导航到特定ID 该文档提供了一个解决方案,但它没有如图所示工作 在db ref上使用push().set()方法后,我尝试创建一个回调函数,该函数将获取使用push。(.set()方法创建的特定ID,然后使用该ID进行导航Javascript 在Firebase中写入数据后读取数据,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,在实时数据库中创建项目后,我尝试导航到特定ID 该文档提供了一个解决方案,但它没有如图所示工作 在db ref上使用push().set()方法后,我尝试创建一个回调函数,该函数将获取使用push。(.set()方法创建的特定ID,然后使用该ID进行导航 db.ref.push().set({ ... }).then(function(){ router.navigate(ref/ + db.ref.key /) }) 在该参考点创建新对象后,我想使用firebase创建的ID
db.ref.push().set({
...
}).then(function(){
router.navigate(ref/ + db.ref.key /)
})
在该参考点创建新对象后,我想使用firebase创建的ID导航到使用该ID的特定路线。问题在于
db.ref.push()
返回一个具有唯一ID的新参考对象。您无法获得该ID的值。您可以重构一些内容,使其类似于:
let newref = db.ref.push();
newref.set({
...
})
.then( () => {
// You can use "newref" here
// The last part of the full reference path is in "key"
let id = newref.key;
// Do something with the id as part of your route
});
设置
set(值,onComplete)=>返回firebase。承诺包含void
因此,您完全正确地认识到,您应该能够通过回调看到操作已解决,但是承诺不会返回任何密钥
但是,您应该能够链接此事件:
db.ref.push().set({
...
}).getKey().then(data => console.log(data))
那么,你用什么库来路由呢?@joelgullander使用主干网路由器。问题是在使用set后无法返回id。这也正是我想要的。不知道为什么文档不起作用。回答得很好,谢谢你的快速回复!