第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用類型腳本中的函數(shù)從火庫獲取文檔?

如何使用類型腳本中的函數(shù)從火庫獲取文檔?

偶然的你 2022-09-23 16:39:09
我想使用用戶的 ID 從我的集合中獲取用戶信息,以便向他們發(fā)送通知。這是我在索引.ts中的函數(shù)export const sendNotifications = functions.firestore.document('messages/{groupId1}/{groupId2}/{message}').onCreate((snapshot, context) =>{    console.log('Starting sendNotification Function');       const doc = snapshot.data();    console.log(doc.content);    console.log(getUserData(doc.idFrom))    return true;});export async function getUserData(id: string){    try {        const snapshot = await admin.firestore().collection('users').doc(id).get();        const userData = snapshot.data();        if(userData){            return userData.nickname;        }           } catch (error) {                console.log('Error getting User Information:', error);        return `NOT FOUND: ${error}`    } }從我的部署中,我收到控制臺(tái)日志消息,“啟動(dòng)發(fā)送通知函數(shù)”,然后是實(shí)際的“doc.content”,然后是我的“getUserData(doc.idFrom)”的錯(cuò)誤。Promise {  <pending>,  domain:    Domain {     domain: null,     _events: { error: [Function] },     _eventsCount: 1,     _maxListeners: undefined,     members: [] } } 提前感謝您!
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊

應(yīng)使用 調(diào)用異步函數(shù)。getUserData()await


以下應(yīng)該可以解決問題(未經(jīng)測試):


export const sendNotifications = functions.firestore

  .document('messages/{groupId1}/{groupId2}/{message}')

  .onCreate(async (snapshot, context) => {

    try {

      console.log('Starting sendNotification Function');

      const doc = snapshot.data();

      console.log(doc.content);


      const nickname = await getUserData(doc.idFrom);

      // Do something with the nickname value

      return true;

    } catch (error) {

      // ...

    }

  });


async function getUserData(id: string) {

  try {

    const snapshot = await admin.firestore().collection('users').doc(id).get();

    if (snapshot.exists) {

       const userData = snapshot.data();

       return userData.nickname;

    } else {

      //Throw an error

    }

  } catch (error) {

    // I would suggest you throw an error

    console.log('Error getting User Information:', error);

    return `NOT FOUND: ${error}`;

  }

}

或者,如果您不想使用云功能異步,可以執(zhí)行以下操作:


export const sendNotifications = functions.firestore

  .document('messages/{groupId1}/{groupId2}/{message}')

  .onCreate((snapshot, context) => {

    console.log('Starting sendNotification Function');

    const doc = snapshot.data();

    console.log(doc.content);


    return getUserData(doc.idFrom)

      .then((nickname) => {

        // Do something with the nickname value

        return true;

      })

      .catch((error) => {

        console.log(error);

        return true;

      });

  });


查看完整回答
反對(duì) 回復(fù) 2022-09-23
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)