Javascript + Firebase博客addpost函数firstId返回未定义

时间:2018-11-21 23:32:41

标签: javascript firebase firebase-realtime-database

我正在用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添加帖子?

1 个答案:

答案 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