【问题标题】:Worklight 5.0.6 JSONStore with Sync errorWorklight 5.0.6 JSONStore 出现同步错误
【发布时间】:2013-05-18 07:03:27
【问题描述】:

我尝试在 Worklight 5.0.6 中使用 Adapter 初始化 JSONStore Sync,如下所示:

           var usersSearchFields = {"age":"integer","name.demo":"string"},
                usersAdapterOptions = {
                    name: 'user',
                    replace: 'updateUser',
                    remove: 'deleteUser',
                    add: 'addUser',
                    load: {
                        procedure: 'getUsers',
                        params: [],
                        key: 'users'
                    },
                    accept: function (data) {
                        return (data.status === 200);
                    }
                };
                var collections = {
                        users : {
                        searchFields : usersSearchFields,
                        adapter :   usersAdapterOptions
                        }
                };
                var options = {
                        username: 'carlos', 
                        password: '123' 
                        };
                var usersCollection=WL.JSONStore.init(collections, options)
                        .then(function (res) {
                            logMessage('Collection has been initialized');      
                        })  
                        .fail(function (errobject) {
                        WL.Logger.debug(errobject.toString());
                        });

它在第一次运行成功,但在我退出应用程序然后返回后,它得到错误: *"PROVISION_TABLE_SEARCH_FIELDS_MISMATCH"*

有人可以帮帮我吗?非常感谢。

【问题讨论】:

    标签: ibm-mobilefirst jsonstore


    【解决方案1】:

    看起来像以下已知问题:

    PM85364: JSONSTORE ERROR AFTER FIRST LAUNCH ON ANDROID WITH '.' IN SEARCH FIELDS.。要修复它,请升级到 5.0.6.1 Fix Pack (Source)。

    通常:

    -2 PROVISION_TABLE_SEARCH_FIELDS_MISMATCH

    如果不使用新的搜索字段调用 destroyremoveCollectioninitinitCollection,您将无法更改搜索字段。如果您更改搜索字段的名称或类型,可能会发生此错误。例如:{key: 'string'}{key: 'number'}{myKey: 'string'}{theKey: 'string'}

    文档是here。我还推荐 this StackOverflow answer 进行 JSONStore 调试。

    这可以解决您面临的问题:

    重置模拟器或模拟器和/或调用 WL.JSONStore.destroy()。

    【讨论】:

    • 但我没有更改搜索字段值,只是退出应用程序并返回,我意识到如果我更改搜索字段 {"name.demo":"string"}{"name":"string"},它不会得到这个错误,但是 "name.demo" 是我想要的
    • 我在上面的回答中解释了您的问题,特别是当我对 {theKey: 'string'}" 说 " 或 {myKey: 'string'} 时。。注意“myKey”更改为“theKey”。我在上面的回答中也提供了一个解决方案。搜索字段不是动态的,您将它们视为动态的。
    • 嗨,我猜你想念我了。这是关于 Json Store 密钥的命名约定。当我使用不带“。”的名称时例如:“名称”,一切都很好。但是,当我使用“。”在key的名字中例如:“name.demo”,那么,在第一次使用应用程序时,就可以了。但是,当我关闭我的应用程序,再次重新打开它时,我收到此错误消息并且无法继续进行 JSON 商店搜索。请注意,我总是在将搜索字段的名称更改为测试之前销毁 jsonstore。
    • 很抱歉,我确实错过了理解您的信息。好像您遇到了这个问题:PM85364: JSONSTORE ERROR AFTER FIRST LAUNCH ON ANDROID WITH '.' IN SEARCH FIELDS. Try install 'Fix Pack 5.0.6.1' (source)。
    • 感谢 cnandreu,我已经更新到 worklight 5.0.6.1 并修复了这个错误!
    猜你喜欢
    • 2013-07-18
    • 2013-02-15
    • 2015-01-25
    • 1970-01-01
    • 2014-08-01
    • 2014-11-17
    • 2013-01-13
    • 2013-08-03
    • 2013-08-13
    相关资源
    最近更新 更多