搜索儿童Firebase

时间:2016-09-22 14:25:40

标签: javascript node.js firebase firebase-realtime-database

我正在Node.js和Firebase中构建一个URL缩短器,它现在正在运行,但是如果你缩短了一个URL并且它再次缩短了它就会耗尽另一个链接。以下是我在Firebase中的数据:

Database 
  --> (Short Link)
    --> (Long URL)
    --> (Views)
  --> q0
    --> http://google.co.uk/
    --> 10
  --> g7
    --> http://google.co.uk/
    --> 3

我希望这样当有人创建新链接时,它会检查现有条目。我不确定这是否会效率低下。

我不确定如何去做,所以我会感激任何帮助。我想从每个条目中获取长URL,并使用正在创建的新条目进行检查。

1 个答案:

答案 0 :(得分:0)

添加缩短的网址时,您可以检查它是否存在:

dbRef.once("value", function(snap) {
    snap.forEach(function(shortLink) {
        //let's say the field for your "Long URL" is called "longLink"
        if(newUrl === shortLink.val().longLink) {
            return true; //cancel the loop, newUrl is already in the db
        }
    });
});

您可以添加一个标志,指示是否找到重复项,如果基于该标志找不到任何内容,则将该URL添加到您的数据库。