有人知道如何限制数组,以便在同一写入中推送新项并丢弃旧项吗?
我猜这是不可能的,但肯定会很方便。
// * Store notification
// Users collection
const usersCollection = db.collection('users').doc(uid).collection('notifications').doc();
// Write this notification to the database as well
await usersCollection.update({
count: admin.firestore.FieldValue.increment,
notifications: admin.firestore.FieldValue.arrayUnion({
'symbol': symbol,
'companyname': companyname,
'change': priceDifference,
'changeDirection': directionOperatorHandler,
'updatedPrice': symbolLatestPrice,
'timestamp': currentTimestamp,
})
});
用Typescript编写
或者,我想每周运行一个调度的云函数,根据时间戳来遍历和修剪数组。
我之所以使用数组来存储通知,是因为我预计会有很多写入操作。
没有简单的配置。您的代码应该通过以下方式实现您的需求:
- 阅读文档
- 修改内存中的数组
- 检查尺寸是否在限制范围内
- 将文档写回