如何在TypeScript中从Firebase获取Map对象

我正在用TypeScript编写云函数,并尝试从Firebase获取Map对象-AKA(嵌套对象,称为地图),以便能够对其进行迭代。

这是我的Firebase中的结构:

如何在TypeScript中从Firebase获取Map对象

我正在尝试获取以下数据:

const tokenSettingsRef = db.collection('tokenSettings').doc('spread')
transaction.get(tokenSettingsRef).then((tokenSettingsDocsnapshot) => {


                            const tokenData = tokenSettingsDocsnapshot.data()
                            if (typeof tokenData !== 'undefined') {
                                console.log("tokennne3: " + tokenData.tokens[0])
                                console.log("tokennne4: " + tokenData)
                                console.log("tokennne5: " + tokenData.tokens)
                                console.log("tokennne1: " + tokenData.tokens.length())
                                console.log("tokennne2: " + tokenData.tokens.keys())
                                const variations = new Map(Object.entries(tokenData.tokens));
                                console.log("tokennne5: " + variations.keys)
                                console.log("tokennne6: " + variations.values)

以上所有内容均未提供给我地图,因此我可以使用它...或注销它。 我正在获取数据,但我只能看到[object Object]

我在这里缺少什么,获取数组或普通对象没有任何问题...


bin_swnswn 回答:如何在TypeScript中从Firebase获取Map对象

根据您问题中的代码,我假设您在transaction内读取数据。

以下方法应该起作用:

write

如下面的评论中所述,如果要“从中取出var tokenSettingsRef = db.collection('tokenSettings').doc('spread'); db.runTransaction(transaction => { return transaction.get(tokenSettingsRef).then(tokenSettingsDocSnapshot => { if (!tokenSettingsDocSnapshot.exists) { throw "Document does not exist!"; } var tokensMap = tokenSettingsDocSnapshot.data().tokens; //Let's print all the keys and values of the tokens map Object.keys(tokens).forEach(e => console.log(`key=${e} value=${tokens[e]}`) ); //...... Continue the transaction }); }).then(function() { //.... }) .catch(error => { console.log('Transaction failed: ',error); }); 个对象,可以执行以下操作:

Map<number,number>
本文链接:https://www.f2er.com/3149180.html

大家都在问