我正在从RSS Feed中检索数据,并在Firebase的数据库中添加结构化日期。每次刷新RSS源时,都会添加一个新的UID,但问题是它添加了相同的值。换句话说:
有没有办法检查一个值,例如更新:“鱼显示所有..”已经存在并跳过而不是添加一个全新的UID?
我正在使用feedparser(node.js)进行rss解析,这是每次刷新时导致重复的代码:
feedparser.on('readable', function() {
// This is where the action is!
var stream = this
, meta = this.meta // **NOTE** the "meta" is always available in the context of the feedparser instance
, item;
while (item = stream.read()) {
console.log(item);
var pubDate = item.pubDate;
var date = new Date(pubDate);
var description = item.description;
var parts = description.split(' - ', 2);
var time = parts[0];
var update = parts[1];
// date.setTimezone
// var time = date.getHours()+":"+date.getMinutes();
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var month = monthNames[date.getMonth()]+" "+date.getDate();
var postData = {
time: time,
date: month,
update: update,
description: description,
day: pubDate
};
var newPostKey = firebase.database().ref().child('feed').push().key;
var updates = {};
updates['/feed/' + month + '/' + newPostKey] = postData;
return firebase.database().ref().update(updates);
答案 0 :(得分:0)
我认为,此处的解决方案是使用已解析的Feed数据来获取某种唯一标识符,并将其用作Firebase数据库密钥,而不是使用push。例如,许多RSS源具有唯一标识帖子的guid
值,因此您可以执行以下操作:
firebase.database().ref('feed')
.child(month).child(postData.guid)
.update(updates);
这样,如果你多次获取相同的项目,只要guid
相同,它就会一直就地更新。