簡體   English   中英

Firestore DocumentSnapshot.data() 返回未定義,但在控制台中它 def.netly 具有並且適用於其他文檔

[英]Firestore DocumentSnapshot.data() returns undefined, but in the console it definetly has and it works for other documents

在這個 Firebase Function 我得到兩個 DocumentSnapshots,第一個工作正常,我可以從數據庫中獲取數據(emailNonce),但是第二個 DocumentSnapshot 不知何故沒有數據,object 在那里,我可以在日志中看到它,但在其上調用 .data() 返回未定義:

    const addRentalFct = async (data, context) => {

    // this works:
    const secretsRef = db.collection('user-secrets').doc('Yv3gZU8TeJTixl0njm7kUXXpvhc2');
    const secretsSnap = await secretsRef.get();
    const dbNonce = secretsSnap.data().emailNonce;
functions.logger.log('got the dbNonce: ', dbNonce);

    // this doesn't work, but ir's the same logic as above:
    const boxesSecretsRef = db.collection('box-secrets').doc('CB8lNQ8ZUnv4FDT6ZXGW');
    const boxSecretsSnap = await boxesSecretsRef.get();
    functions.logger.log('got the boxSecretsSnap: ', boxSecretsSnap);
    functions.logger.log('got the boxSecretsSnap.data(): ', boxSecretsSnap.data());
    const boxPassword = boxSecretsSnap.data().password;
    functions.logger.log('the box secret is: ', boxPassword);

...
}

日志

The DB: box-secrets 系列盒子秘密

用戶機密: 用戶機密

(秘密來自我的開發環境)

問題是我從控制台中已經存在的文檔中復制了新文檔的 ID,如下所示: 從這里復制

前面自動添加了一個空格。 當我創建新文檔時,空格不可見,但我可以創建另一個具有相同 id 的文檔,前面沒有空格。 在這里你看到它不是那么明顯,看起來有兩個文檔具有完全相同的 id: 空間不可見 像這樣時, firebase function 沒有找到這兩個文檔中的任何一個。 我已經刪除了兩者並在沒有空格的情況下讀取它,然后它起作用了。

暫無
暫無

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

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