作者:风桥残岸_476 | 来源:互联网 | 2023-05-17 21:56
WhatIhaveisafunctionthatresetsarefwhencalled.Itworkswhenupdatingonlyoneref.我所拥有的是
What I have is a function that resets a ref when called. It works when updating only one ref.
我所拥有的是一个在调用时重置ref的函数。它仅在更新一个ref时起作用。
This is the code for that part of the function:
这是该部分功能的代码:
if (streakVal !== 0) {
//reset
const uid = item.child('uid').val();
ref.child(uid).update({ streak: 0 }).catch(err => {
res.status(500).send(err);
});
}
I also want to update another ref in a different part of the database. I've included it in the same function, as the only difference is the ref location. The part then looks like this:
我还想在数据库的不同部分更新另一个ref。我把它包含在同一个函数中,因为唯一的区别是ref位置。那部分看起来像这样:
if (streakVal !== 0) {
//reset
const uid = item.child('uid').val();
ref.child(uid).update({ streak: 0 }).then(() => {
boardRef.child(uid).update({ score: 0 }).catch(err => {
res.status(500).send(err);
});
}).catch(err => {
res.status(500).send(err);
});
}
The first snippet works. However, the second results in the error Function execution took 800 ms, finished with status code: 304
I'm wondering why this is and how to fix it. Maybe I'm not structuring it correctly as I'm new to Node. I'm sure that's the correct path to both refs. Here is the full function:
第一个片段有效。然而,第二个导致错误函数执行花了800毫秒,完成状态代码:304我想知道为什么这是以及如何解决它。也许我没有正确构造它,因为我是Node的新手。我确信这是两个裁判的正确途径。这是完整的功能:
export const resetStreak = functions.https.onRequest((req, res) => {
const ref = db.ref('users');
const boardRef = db.ref('streakLeaderboard');
ref.once('value').then(snap => {
snap.forEach(item => {
const streakVal = item.child('streak').val();
const lastQuestTimestamp = item.child('lastQuest').val();
const today = new Date();
const d = new Date(lastQuestTimestamp);
if (sameDay(today, d) === false) {
if (streakVal !== 0) {
//reset
const uid = item.child('uid').val();
ref.child(uid).update({ streak: 0 }).then(() => {
boardRef.child(uid).update({ score: 0 }).catch(err => {
res.status(500).send(err);
});
}).catch(err => {
res.status(500).send(err);
});
}
}
})
}).catch(err => {
res.status(500).send(err);
});
Thank you!
谢谢!
1 个解决方案