我正在用Js和Firebase创建一个博客。当我将帖子添加到firebase数据库时,第一个的ID为undefined
,然后从myid-0
开始递增。
这是我的代码:
<button onclick="writeUserData(document.getElementById('blog-title').value, document.getElementById('blog-content').value, uniqueId(uniqueId))">Add</button>
...........
function uniqueId(uniqueId) {
var counter = 0;
window.uniqueId = function(){
return ('myid-' + counter++);
}
}
function writeUserData(title, content, postID) {
firebase.database().ref('posts/' + postID).set({
title: title,
content: content
});
}
为什么不开始从myid-0添加帖子?
答案 0 :(得分:1)
这是因为您的函数uniqueId()
不正确。您可以通过在页面上使用以下代码按钮来查看它:
<input
id="clickMe"
type="button"
value="clickme"
onclick="console.log(uniqueId());"
/>
因此,如果将函数更改为以下内容,它将起作用:
var counter = 0;
function uniqueId() {
return 'myid-' + counter++;
}
function writeUserData(title, content, postID) {
firebase.database().ref('posts/' + postID).set({
title: title,
content: content
});
}
......
<button onclick="writeUserData(document.getElementById('blog-title').value, document.getElementById('blog-content').value, uniqueId())">Add</button>
但是请注意,您可以让Firebase生成UniqueId,请参阅https://firebase.google.com/docs/reference/js/firebase.database.Reference#push