gpt4 book ai didi

javascript - 对话流 : Getting in an array all document IDs of a firestore collection (javascript node)

转载 作者:行者123 更新时间:2023-11-30 19:19:31 25 4
gpt4 key购买 nike

我一直在尝试从我的 firestore 集合中检索所有文档 ID。

例如。如果我的集合中有两个文档,我想获得一个包含集合中所有文档 ID 的数组。即:var myArray = ['HhYaTvok4qJaIAVI9R0','2AO4RbZ6K5Db4q3OSqi'];

我一直在尝试使用 firestore 文档 ( https://github.com/firebase/snippets-node/blob/9ae3a00985b53025fdc82716046882af71b6009d/firestore/main/index.js#L622-L627 ) 中的一些代码。

但它不会检索对话流中的任何内容

在 index.js(内联编辑器)中我的代码下方。


// The function to get documents ids
const arraymaker = (db) => {
let platformRef = db.collection('quiz');
let all_doc = platformRef.get();
return all_doc
.then(snapshot => {
var myArray =[];
snapshot.forEach(doc => {
myArray.push(doc.id);
});
})
.catch(err => {
console.log('Error getting documents', err);
});
};

// database retrieve
app.intent('Read Random Quizz', (conv) => {
// Trying to get Data from firestone DB,
//var myArray = ['HhYaTvok4qJaIAVI9dR0','2AO4RbZ6K5Db4q3OS7qi'];
var myArray = arraymaker(db);
var rand = myArray[Math.floor(Math.random() * myArray.length)];
var platformRef = db.collection("quiz").doc(rand);
return platformRef.get()
.then( snap => {
var dat = "";
var answ = "";
if (snap.exists) {
dat = snap.data().question;
answ = snap.data().answer;
}
// This is the response for Actions on Google
reply(conv,`The question is ${dat} and the answer is ${answ}`);
})
.catch( err => {
console.log("error...", err);
});
});

我认为问题出在:

var myArray = arraymaker(db);

它只是不返回包含所有文档 ID 的 myArray。

当我单独运行该函数时,我可以看到一个 firestore 将所有 id 附加到一个数组中。但只是在 firestore 日志中。它不会返回不在对话流中的最终 myArray。

最佳答案

您必须在 sec 示例中返回 all_doc。 app.intent 必须像第一个示例一样返回一个 promise ,而在第二个示例中您不会返回其中的任何内容。

此外,您正在使用 console.log 覆盖 myArray !!并调用每个文档的回复,我不熟悉 firestore 但我认为你必须在每个文档之后调用回复并更改覆盖 myArray

var myArray ="";
snapshot.forEach(doc => {
myArray += doc.id;
});
reply(conv,`Your list of IDs is ${myArray}`);

关于javascript - 对话流 : Getting in an array all document IDs of a firestore collection (javascript node),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57626275/

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