Проверка машинописного текста на отсутствие равенства не выполняется в моем проекте firebase (! = И! ==) - PullRequest
0 голосов
/ 14 июля 2020

Я почему-то не понимаю, как машинописный текст сравнивает значения.

Я думал, что следующий фрагмент выполнит часть else, поскольку значения username и profilePicture совпадают.

Я также не понимаю, почему нижнее сообщение журнала печатает только истину и ложь, а не полный текст, который я там поместил

export const stackOverflowTest = functions.firestore
    .document('users/{userId}')
    .onUpdate((change, context) => {
        const beforeUpdate = change.before.data();
        const afterUpdate = change.after.data();

        console.log("beforeUpdate!.profilePicture: "+beforeUpdate!.profilePicture)
        console.log("afterUpdate!.profilePicture: "+afterUpdate!.profilePicture)
        console.log("beforeUpdate!.username: "+beforeUpdate!.username)
        console.log("afterUpdate!.username: "+afterUpdate!.username)

        console.log("profilePicture != "+beforeUpdate!.profilePicture != afterUpdate!.profilePicture)
        console.log("username != "+beforeUpdate!.username != afterUpdate!.username)


        if (beforeUpdate!.profilePicture != afterUpdate!.profilePicture || beforeUpdate!.username != afterUpdate!.username) {
          
           console.log("Executed the if part")
           return Promise.resolve()
        } else {
    
           console.log("Executed the else part")
           return Promise.resolve()

        }

    });

Здесь журнал firebase:

  7:18:30.286 PM userOnUpdate-stackOverflowTest 
  beforeUpdate!.profilePicture: 063729986344.534000000 

    
  7:18:30.286 PM userOnUpdate-stackOverflowTest
  afterUpdate!.profilePicture: 063729986344.534000000
    
  7:18:30.286 PM userOnUpdate-stackOverflowTest
  beforeUpdate!.username: Dennis
    
  7:18:30.286 PM userOnUpdate-stackOverflowTest
  afterUpdate!.username: Dennis

  7:18:30.286 PM userOnUpdate-stackOverflowTest
  true
    
  7:18:30.286 PM userOnUpdate-stackOverflowTest
  true
    
  7:18:30.286 PM userOnUpdate-stackOverflowTest
  Executed the if part 

1 Ответ

0 голосов
/ 15 июля 2020

Проблема заключалась в том, что profilePicture - это отметка времени, и вы НЕ МОЖЕТЕ сравнивать отметки времени firestore, используя! = Или любую другую операцию сравнения. В этом отношении вы должны использовать Timestamp.isEqual (). Это также (и я не знаю почему) исправило ошибку, заключающуюся в том, что имя пользователя также было неравным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...