您可以添加一个标志,指示是否发现重复,如果根据该标志没有发现任何内容,则将url添加到数据库。
我正在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,并与正在创建的新条目检查它们。
当添加一个缩短的url时,您可以检查它是否存在:
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
}
});
});