How can I compare Firestore time with Go time.Now()?

Issue

I use Go to build my game server. I am going to compare a time from time.Now() and one from a Firestore field. How can I do that in Go?

        playerDataSnap, err := Instace.FireStoreClient.Collection("PlayerData").Doc(playerUID).Get(Instace.Context)
    if err != nil {
        log.Printf("EventModeFee Get PlayerData Fail: %v", err)
        return
    }
    playerData := playerDataSnap.Data()
    if value, exist := playerData["EventPlayTimes"]; exist {
        eventPlayTimes = value.(int64)
    }

    if discount_Subscribe > 0 {
        if value, exist := playerData["SubscriptionExpiredDate"]; exist { //Get Subscribe expired time
            var expireTimeStamp = value //<-------------timestamp from firestore field

            if time.Now().Before(expireTimeStamp) {//<---------------expireTimeStamp is not a valid type, but How can I convert it to a valid type
                isSubscribed = true
            }
        }
    }

expireTimeStamp is not a valid type, but how can I convert it to a valid one?

Solution

It turns out that I can directly assert the timestamp from Firestore field to time.Time with the following code:

if time.Now().Before(expireTimeStamp.(time.Time)) {
    isSubscribed = true
}

Answered By – Scozirge2

Answer Checked By – Timothy Miller (GoLangFix Admin)

Leave a Reply

Your email address will not be published.