reactjs - 我正在尝试从 Firestore 中删除一些数据,但出现问题(反应)
问题描述
export function DeletePayment(paymentRefs) {
return async (dispatch) => {
await firebase
.firestore()
.collection("payments")
.doc(firebase.auth().currentUser.uid)
.collection("payment")
.where("uid", "==", firebase.auth().currentUser.uid)
.onSnapshot(async (result) => {
const batch = firebase.firestore().batch();
paymentRefs.forEach((ref) => {
batch.delete(ref);
});
await batch.commit();
})
}
}
paymentRefs 是数组的对象,现在运行此代码时出现此错误
Unhandled Rejection (FirebaseError): Expected type 't', but it was: a custom Object object
解决方案
试试这个:
export function DeletePayments(paymentRefs) {
const batch = firebase.firestore().batch();
paymentRefs.forEach((ref) => {
batch.delete(ref);
});
return batch.commit()
}
这将在批处理结束时删除所有文档引用,并将返回一个您可以在每次调用该函数时处理的承诺。
编辑:如果您在每个对象中都有付款的 ID paymentRefs
,您可以尝试这样的事情。
export function DeletePayments(paymentRefs) {
const batch = firebase.firestore().batch();
paymentRefs.forEach((ref) => {
batch.delete(firebase.firestore().doc(`payments/${firebase.auth().currentUser.uid}/payment/${ref.id}`));
});
return batch.commit()
}
推荐阅读
- javascript - 我们如何使用 reduce 和 rest 运算符将以下数组转换为对象
- java - 多模块 Spring Web 项目上的 SpringBoot App 模块
- java - 错误:未知列“0_”。在“where子句”中
- r - 如何将以本地语言表示的字符串布尔值转换为布尔值
- python - 城市、道路和网络流量。通过另一个表中的索引列对一个表进行分组/聚合?
- azure - 无法更改 Azure ML 笔记本中的虚拟环境
- sql - 使用“create as”语句创建索引组织表的 Oracle 问题
- excel - GetSaveAsFilename 使用单元格值作为文件标题
- java - 如何调试 javax.net.ssl 包
- javascript - 尽管在 Postman 工作,但出现 400 错误,可能的原因是什么?