Javascript 数组函数不返回数组

亚伦克里斯蒂安森

我试图从这个函数返回一个字符串数组:

let returnArr = [];
export async function snapshotToArray() {
    const db = firebase.firestore();
        db.collection('userinfo').get().then(querySnapshot => {
            querySnapshot.forEach(documentSnapshot => {
                let id = documentSnapshot.id;

               returnArr.push(id).toString();
            });
            console.log(returnArr);

            return returnArr;

        });

}
应该注意的是,控制台似乎准确地打印了我需要它打印/返回的内容。

正在从该函数调用数组创建函数:

export async function getStaticPaths() {
    const paths = await snapshotToArray();
    return {
        paths,
        fallback: false
    }
}

无论出于何种原因,它似乎都没有返回我在控制台中看到的内容。

这是我收到的错误:

Error: Invalid `paths` value returned from getStaticPaths in /user/[name].
`paths` must be an array of strings or objects of shape { params: [key: string]: string }

我已经尝试了很多不同的方法来做到这一点,但我似乎无法弄清楚。任何帮助表示赞赏。

板IP

似乎 snapshotToArray 函数没有返回值。

let returnArr = [];
export async function snapshotToArray() {
    const db = firebase.firestore();
    const querySnapshot = await db.collection('userinfo').get()
    querySnapshot.forEach(documentSnapshot => {
        let id = documentSnapshot.id;
       returnArr.push(id).toString();
    });
    console.log(returnArr);
    return returnArr;
}

以下 async-await 用法应该对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章