Skip to content

Issue with Date for ParseLiveQueryClient callback #6346

Open
@noaker

Description

@noaker

Issue Description

The ParseObject returned by LiveQuery events gives Date in String format, instead of Date format. Problem seem to specifically pertain to "Update" events. Strangely, some Date fields are returned in Date format while some are returned in String format.

I have tried several Parse-Server versions and with the exception of version 3.1.1, all other versions 3.7.2, 3.8.0, and 3.9.0 seem to have this problem.

P.S. I am aware that special fields like updatedAt and createdAt return String values. I was referring to custom Date fields created by me.

Note: I am using Back4App, which is a backend-as-a-service built on Parse.

Steps to reproduce

Codes in Android client

ParseQuery<ParseObject> liveQuery = ParseQuery.getQuery("QueueGP");
liveQuery.whereEqualTo("clinic", clinicId);

SubscriptionHandling<ParseObject> subscription = parseLiveQueryClient.subscribe(liveQuery);
subscription.handleEvents(new SubscriptionHandling.HandleEventsCallback<ParseObject>() {
    @Override
    public void onEvents(ParseQuery<ParseObject> query, SubscriptionHandling.Event event, ParseObject parseObject) {
        if(event == SubscriptionHandling.Event.UPDATE){
            Date registeredAt = parseObject.getDate("registeredAt");
        } ...
    }
});

Expected Results

onEvent from ParseLiveQueryClient (seen in verbose in my logs)

... Socket onMessage {"op":"update", ... "registeredAt":{"__type":"Date","iso":"2020-01-15T12:19:07.175Z"}}

Expected to see "Date" and "iso", and parseObject.getDate("registeredAt"); should contain date value

Actual Outcome

No "Date" or "iso" seen.

"registeredAt":"2020-01-15T12:19:19.759Z"

In actual, parseObject.getDate("registeredAt") gives null value, while parseObject.get("registeredAt"); gives value of String type

Environment Setup

  • Server

    • parse-server version (Be specific! Don't say 'latest'.) : [3.72 / 3.8.0/ 3.9.0]
    • Operating System: [Handled by back4app]
    • Hardware: [Handled by back4app]
    • Localhost or remote server? (AWS, Heroku, Azure, Digital Ocean, etc): [Handled by back4app]
  • Database

    • MongoDB version: [Handled by back4app]
    • Storage engine: [Handled by back4app]
    • Hardware: [Handled by back4app]
    • Localhost or remote server? (AWS, mLab, ObjectRocket, Digital Ocean, etc): [Handled by back4app]

Logs/Trace

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugImpaired feature or lacking behavior that is likely assumed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions