网络查询返回本地数据存储指针

时间:2014-08-26 10:03:56

标签: android parse-platform

我最近设法切换到本地数据存储区,将数据库的所有必需部分移动到客户端。此外,每当数据发生变化时,我都会发送推送通知,以便客户数据保持最新状态。

现在我的问题是我的数据中的一个指针在更新后不断返回旧指针。

以下是我使用的代码:

public ParseQuery<CircuitUnit> circuitUnits() {
    ParseQuery<CircuitUnit> query = CircuitUnit.getQuery();
    query.include(CircuitUnit.circuits);
    query.include(CircuitUnit.guard);
    query.setLimit(1000);
    return query;
}

circuitUnits().findInBackground(
             new FindCallback<CircuitUnit>() {

    @Override
    public void done(List<CircuitUnit> objects, ParseException e) {
        Log.d(TAG, "Pinning circuitUnits " + objects.size());

        // debugging loop of results
        for (CircuitUnit circuitUnit : objects) {
            if (circuitUnit.getObjectId().equals("TXEZDch6wK")) {

                Guard guard = circuitUnit.getGuard();
                Log.d(TAG, "Guard: " + guard.getObjectId());

            }
        }

        // This function updates the Local datastore with the newly fetched objects
        // updateServerDataPin(objects, PinsGlobal.CIRCUIT_UNITS,
                            e, callback);
    }
});

Logged输出为:&#34; Guard:L440gHXKTY&#34;它应该是SDDg23rR4h

我添加了CircuitUnit表的屏幕截图,显示SDDg23rR4h确实是指针的预期objectId。

CircuitUnits table shown in Data Browser

我尝试创建一个示例项目,将该问题显示为parse.com的错误报告的一部分,但返回了正确的指针。

我的理论是,这个问题在于本地数据存储中的数据会以某种方式干扰结果。不是我理解为什么,因为我显然是在询问网络而不是在本地。

似乎忽略了include语句,只是填充了本地数据存储区中的已知数据。

有没有人遇到类似的事情或对这种行为有可能的解释?

0 个答案:

没有答案