I'm using Parse sdk for android.
In offline mode, I created some parse objects and pinned them using
...
ParseObject.pinAll(cartItems)
orderObject.pin() //orderObject.objectId() returns null!
...
Later when i query cartItems in localDatastore i use
...
query.whereEqualTo("order", orderObject);
query.fromLocalDatastore().ignoreACLs();
...
but the query gives no result,probably because objectId of orderObject is null.
Is there any way to execute this query successfully?
If parse is incapable to do this should i go for Room database to store the data offline or is there any better alternative?
Any help is appreciated.
EDIT:
There are two subclasses
Order extends ParseObject
OrderIte extends ParseObject
I create some OrderItem-s and one order. I put Order pointer in OrderItem-s and pin them all.
Later when i query OrderItem class in local datastore I want to retrieve OrdeItem-s for a perticular order. So in the OrderItem query i set
query.equaTo("order",myOrder.getObjectId())
But since the device is offline the whole time myOrder.getObjectId()
returns null and the query fails to find the orderItems for myOrder
Expected query -> Select all from OrderItem where order = myOrder.getObjectId()
Actual query parse makes -> Select all from OrderItem where order = null
null as the object is stored offline in localdatastore.
ParseObject pinInBackground returning null objectId
This makes basic queries fail and makes the LocalDatastore less useful.
A somewhat working solution for me is:
when setting pointer of Order in OrderItem-s
instead of
orderItem.put("order",myOrderObject)
i use
String randomId = generateRandomString()
myOrderObject.put("temp_orderOfflineId",randomId)
orderItem.put("order_id",randomId )
and in query instead of
orderItemquery.equaTo("order",myOrder.getObjectId())
i use
query.equaTo("order_id",myOrder.getString("temp_orderOfflineId"))
I use this approach This later makes sync with server hard,very hard.
Waiting for better solution
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.