我有一个云功能,当用户跟随另一个用户时会触发该功能。交易应该递增计数器
exports.userFollowed = functions.firestore.document("Users/{toUser}/followers/{byUser}").onCreate(userFollowed);
阅读许多关于如何处理 null 案例的论坛和文档。仍然无法让它正常工作。我甚至将该位置的价值替换为' blabla'我为 null 案例返回了。
数据库中的数据最初看起来如下所示
<uid>
followers: 0
following: 0
在跟随操作中触发的功能
function userFollowed(event) {
byUserStatsRef = rltd.ref('UserStatistics/' + toUser),
byUserStatsRef.transaction(byCurrentStats => {
if (!byCurrentStats) {
return 'blabla';
} else {
byCurrentStats.following = parseInt(byCurrentStats.following) + 1
return byCurrentStats;
}
}, function (error, committed, ss) {
if (committed) {
console.log("committed", committed);
}
}, true),
}
同时测试时计数增加不正确。我做错了什么。
请注意,这是云功能(服务器SDK)
中的三分法答案 0 :(得分:0)
在某些情况下,交易可能会返回null,因为该函数可能在缓存新值之前触发。
firebase Cloud function transaction working sporadically
https://firebase.google.com/docs/database/web/read-and-write#save_data_as_transactions
“即使您的远程数据库中有现有数据,运行事务功能时也可能不会在本地缓存它,从而导致初始值为null。”