gpt4 book ai didi

node.js - 即使文档有几个字段,也无法获取 firestore 文档字段数据

转载 作者:太空宇宙 更新时间:2023-11-03 23:15:44 25 4
gpt4 key购买 nike

我已通过以下nodejs脚本将firebase实时数据迁移到cloud firestore:

var fireastoreDB = admin.firestore();
var db = admin.database();
var ref = db.ref("/users");
let items = [];
ref.once("value", function(snapshot) {
let collectionRef = fireastoreDB.collection("users");
snapshot.forEach(item => {
collectionRef.doc(item.key).set(item.val());
});

我将数据存入cloud firestore。现在我必须在 Nodejs 中为这些数据实现 REST API。

var docusRef = db.collection("users").get().then( (data) => {
console.log(data);
data.forEach( item => {
let docObj = item.data();
console.log(docObj['Coins']);
console.log(docObj['Coins']['Total Coins']);
});
});

从这段代码中,我能够获取所有文档字段数据。但是,当我尝试直接获取特定文档数据时,我得到了 undefined(exists: false),但数据在该文档下。

var db = admin.firestore();
var docusRef = db.collection("users").doc('Atest - 12345')
docusRef.get().then(function (col) {
var name=col.get("Coins");
console.log(name); // undefined & exists: false
});

当我从 firebase 控制台手动添加文档/字段时,我正在获取数据。这是迁移数据的问题还是什么?任何人都可以找到这个问题吗?

最佳答案

get()方法返回“用包含当前文档内容的 DocumentSnapshot 解析的 Promise”。因此您必须使用data() DocumentSnapshot 方法获取文档的字段,如下:

docusRef.get().then(function (col) {
var name=col.data().Coins;
console.log(name);
});

关于node.js - 即使文档有几个字段,也无法获取 firestore 文档字段数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55759557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com