【发布时间】:2021-01-10 02:36:53
【问题描述】:
我正在制作一个 React.js 应用程序,用户可以在其中将歌曲上传到 firebase,然后他将按顺序看到所有上传歌曲的队列。 Queque 可以使用拖放系统进行排序,这将更新 Firebase 中的数据库。上传歌曲时,有没有办法将歌曲插入数组?架构将是:
project-name:
[0]:
- name
- artist
- duration
[1]:
- name
- artist
- duration
[ecc]
如何添加一个数组,然后在数据库中追加项目? 我正在使用 nodejs 作为后端和 socket.io 将新的排序队列发送到节点。
上传歌曲.js:
queueRef.set()
queueRef.update({
...metas,
path: fileName,
}, (error) => {
if (error) {
console.log("Data could not be saved." + error)
} else {
console.log("Data saved successfully.")
}
})
songs.js:
io.on('connect', socket => {
var quequeRef = admin.database().ref()
quequeRef.on('value', function (snapshot) {
var queque = snapshot.val()
if (queque != null) {
var value = Object.values(queque)
io.emit('queueSongs', Object.values(value))
} else {
io.emit('queueSongs', [])
}
})
socket.on('queueSongs', (songs) => {
console.log(songs)
quequeRef.set(songs, (error) => {
if (error) {
console.log("Data could not be saved." + error)
} else {
console.log("Data saved successfully.")
}
})
})
})
谢谢
【问题讨论】:
-
你的意思是queue而不是queque?您能否分享您编写的任何无法按您期望的方式工作的代码? documentation 有很多例子可以学习。
-
是的,我的意思是排队哈哈。我想在数据库中添加一个带有 que 的数组,每次都会更新。但是,当我尝试将一首歌曲附加到数据库时,它被视为一张地图,其名称为由 firebase 生成的随机 id
-
请编辑问题以显示您的代码未按预期方式工作。我建议阅读:stackoverflow.com/help/minimal-reproducible-example
-
好的,我编辑了我的问题。我刚刚发现 Firebase 生成的唯一 ID 是按时间顺序排列的。因此,当歌曲队列发生变化时,它会简单地订购新队列并再次发送到实时数据库
标签: javascript node.js reactjs firebase firebase-realtime-database