我正在使用生成的ID添加数据,但我正在尝试对“作者”进行分组。
我有一个脚本,每天根据一些公式添加某些人。我无法知道在任何一天都会添加谁,所以我被迫构建数据库,让它在提交(推送)时生成密钥,然后找到作者密钥并找到具有相同值的其他密钥。
我遇到的问题是在添加新记录之前检查是否存在值。其中一个关键值是“URL”。我试图写一些东西来检查每个记录的值,但它似乎重复并写入数据库,无论值是什么,即使我可以正确检测副本。
function CheckDupes(newUrl, author, title, score, url, certified, date){
var stories = [];
var duped = "false";
var leadsRef = database.ref().child("Authors").once("value").then(function(authorSnapshot)
{
authorSnapshot.forEach(function(child) {
stories.push(child.val());
});
for(var i = 0; i < stories.length; i++)
{
console.log("Story: " + stories[i].url);
if(stories[i].url == newUrl)
{
console.log("Duplicate - " + stories[i].url);
duped = "true";
alert("Story Exists!");
break;
}
}
});
console.log(duped);
if(duped == "false")
{
firebase.database().ref('Authors/').push({
author: author,
title: title,
score: score,
url: url,
certified: certified,
date: date
});
alert("Story has been added!");
}
这就是我现在拥有的。它会找到副本但它会添加到数据库中,无论它是否找到一个。我已将检查移到foreach循环之外,但它根本不存储任何东西。
答案 0 :(得分:0)
function CheckDupes(newUrl, author, title, score, url, certified, date){
var stories = [];
var duped = "false";
var leadsRef = database.ref().child("Authors").once("value").then(function(authorSnapshot)
{
authorSnapshot.forEach(function(child) {
stories.push(child.val());
count++;
});
for(var i = 0; i < stories.length; i++)
{
if(stories[i].url == newUrl)
{
duped = "true";
alert("Story Exists!");
return;
break;
}
}
if(duped == "false")
{
firebase.database().ref('Authors/').push({
author: author,
title: title,
score: score,
url: url,
certified: certified,
date: date
});
alert("Story has been added!");
}
});
authorSnapshot函数中需要的所有内容。愚蠢的错误。