即使文档有几个字段也没有获取 firestore 文档字段数据
Not getting firestore document field data even though document has couple of fields
我已通过以下 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 控制台手动添加 document/fields 时,我正在获取数据。
这是迁移数据的问题还是什么?
谁能找到问题所在。
DocumentSnapshot
的get()
method returns "a Promise resolved with a DocumentSnapshot
containing the current document contents". Therefore you have to use the data()
方法获取文档的字段,如下:
docusRef.get().then(function (col) {
var name=col.data().Coins;
console.log(name);
});
我已通过以下 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 控制台手动添加 document/fields 时,我正在获取数据。 这是迁移数据的问题还是什么? 谁能找到问题所在。
DocumentSnapshot
的get()
method returns "a Promise resolved with a DocumentSnapshot
containing the current document contents". Therefore you have to use the data()
方法获取文档的字段,如下:
docusRef.get().then(function (col) {
var name=col.data().Coins;
console.log(name);
});