Firestore database Screenshot 我正在尝试从Firestore获取文档(附加数据库图像),并从检索到的数据中获取特定的键值。因此,我编写了以下代码来做到这一点。我正确地获取了数据,但是迭代顺序每次都在变化,因此无法从JSON对象获取正确的键值。从下面的代码中,有时我在data [0]处获得硬币价值,有时在data [0]处获得宝石价值,有时在该处获得他人的价值。因此导致获取正确的键值对的问题。
export const playRoulette = functions.https.onRequest((request, response)
=> {
const promise = admin
.firestore()
.doc("cashon/G0eebNKdpNR9vsig96nB3eKyVqg1")
.get();
const p2 = promise.then(snapshot => {
const data = snapshot.data();
if (data) {
const gemsKey = Object.keys(data)[0];
const gemsValue = Object.values(data)[0];
response.send(gemsKey + " : " + gemsValue);
}
});
p2.catch(error => {
response.status(500).send("Error getting documents: " + error);
});
}
答案 0 :(得分:3)
如果我正确理解gemsKey + " : " + gemsValue
的值为gems : 45000
(基于您的屏幕截图),则应执行以下操作:
export const playRoulette = functions.https.onRequest((request, response) => {
admin
.firestore()
.doc("cashon/G0eebNKdpNR9vsig96nB3eKyVqg1")
.get()
.then(snapshot => {
if (snapshot.exists) {
const data = snapshot.data();
const gemsValue = data.gems;
response.send( { "gems : " + gemsValue });
} else {
// snapshot.data() will be undefined in this case
throw new Error("Document does not exist");
}
})
.catch(error => {
response.status(500).send("Error getting documents: " + error);
});
});