簡體   English   中英

從 Firestore 獲取一個文檔並將其返回給一個變量

[英]Get one document from Firestore and return it to a variable

我對 NodeJS 的經驗較少,但我正在嘗試從 Firestore 獲取一份用戶文檔。

const fs = firebase.firestore();
const usersRef = fs.collection('users');


let findUserByContact = (contact) => {
    let res = usersRef.where('contact', '==', contact).get().then(querySnapshot => {
        if (!querySnapshot.empty) {
            return querySnapshot.docs[0].data();
        } else {
            return false;
        }
    });
};

我正在嘗試返回找到的第一個文檔。 但是,當我調用findUserByContact時,它總是會返回 undefined 。

我可以使用console.log查看查詢的 output。 但我無法將其分配給變量。

我已經閱讀了 Promises,我看到它必須解決一些問題。 我試圖用我想要返回的數據調用resolve ,但這也給了我一個錯誤。

我建議您使用 async/await 語法

let findUserByContact = async (contact) => {
    let querySnapshot = await usersRef.where('contact', '==', contact).get();
    if (querySnapshot.empty) return false;

    return querySnapshot.docs[0].data();
};

您需要返回promise 鏈,如下:

let findUserByContact = (contact) => {
    return usersRef.where('contact', '==', contact).get()
     .then(querySnapshot => {
        if (!querySnapshot.empty) {
            return querySnapshot.docs[0].data();
        } else {
            return false;
        }
    });
};

請注意,@AkashDathan 的答案也完全有效,並且使用 async/await 使其更易於閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM