Выполнение оператора if с использованием облачных функций - PullRequest
0 голосов
/ 17 июня 2020

Попытка выполнить базовую c проверку, является ли элемент done данных документа истинным.

exports.watchTodos = functions.firestore.document('users/{uid}/todos/{docId}')
        .onUpdate(async (snap, context) => {
            if(snap.after.data().done){ 
            console.log('is done') 
        },
}

Но console.log никогда не выполняется, но если я регистрирую snap.after.data ( ) .done возвращает true.

1 Ответ

0 голосов
/ 17 июня 2020

Предполагая, что done является логическим типом поля внутри вашего документа, вы можете сделать следующее:

exports.watchTodos = functions.firestore.document('users/{uid}/todos/{docId}')
        .onUpdate( (snap, context) => { 

      // Retrieving uid from the paramaters. 
      const uid = context.params.uid;            

      // TODO: retrieve the done field from the document     
      return admin.firestore().collection("users")
      .doc(`${uid}`)
      .get()
      .then(doc => {

        // Data contains all the fields within your document.
        const data = doc.data();
        // Accessing the phone property.
        const isDone = data.done;

        return console.log(isDone); 

      })
      .catch(err => console.error(err))
  );

})

Не забудьте проверить документацию и другие сообщения Stackoverflow для получения дополнительных примеров об этом.

...