【发布时间】:2021-09-30 13:30:54
【问题描述】:
在我的打字稿代码中,我从 Firebase Firestore 检索数据并在 forEach 循环中过滤有用信息。我将代码压缩为以下测试函数,但错误相同(所有 ID 通常都在变量中):
async function test() {
let playerOneData: FirebaseFirestore.DocumentData | null = null;
let playerTwoData: FirebaseFirestore.DocumentData | null = null;
const players = await db
.collection("Games/ANY_ID/Players")
.where(admin.firestore.FieldPath.documentId(), "in", ["PLAYER1_ID", "PLAYER2_ID"])
.get();
players.forEach((doc) => {
if (doc.id == "PLAYER1_ID") {
playerOneData = doc.data();
}
if (doc.id == "PLAYER2_ID") {
playerTwoData = doc.data();
}
});
if (playerOneData == null || playerTwoData == null) {
return null;
}
console.log(playerOneData.test + " " + playerTwoData.test);
}
最后,当访问“test”属性时,我得到错误“属性测试不存在于类型 never”。
我不明白为什么它甚至应该是 never 类型。据我了解,它应该是 DocumentData 或 null(如定义),我之前直接检查 null。
如果有人能提示我解决方案,那就太好了。
谢谢!
【问题讨论】:
标签: typescript google-cloud-firestore