1

私のアプリでは、すべての KiiUser にデータのハッシュ テーブルが 1 つあります。しかし、KiiObject を使ってデータを保存して次回に取得するのに問題があります。ユーザー登録時に特定の URI で KiiObject を作成して、ログインするたびにインポートできるようにしたい

KiiObject.objectWithURI(<URI>)

または、objectWithJSON() の使用方法。ユーザーごとにオブジェクトが 1 つしかないため、できれば kiiQuery を使用したくありません。

ユーザー登録時にこの Kiiobject を作成する方法と、ログインするたびに編集する方法のコード例を教えてください。または、編集して保存するたびに。それは私の現在のコードの一部ですが、保存されたデータが常に返されるわけではありません(オブジェクトで未定義の保存されたハッシュテーブル「データ」)

    function performRegistration() {
    try {
        var user = KiiUser.userWithUsername(<username>, <password>);
        user.register({
            success: function(Auser) {
                var bucket = Auser.bucketWithName("data");
                data = bucket.createObject();
                data.set("data", {});
                data.saveAllFields({
                            success: function(theObject) {
                                console.log("Object saved!");
                                theObject.refresh({success:function(obj){
                                    data=obj;
                                     [....
                                     ...Some Code here to edit the...
                                     ...data object and save it....
                                      ...]
                                    Kii.logger("User registered: " + Auser);
                                }});
                            },
                            failure: function(theObject, errorString) {
                                console.log("Error saving object: " + errorString);
                            }
                        });

            },
            failure: function(theUser, anErrorString) {
                alert("Unable to register: " + anErrorString);
                Kii.logger("Unable to register user: " + anErrorString);
            }
        });
    } catch (e) {
        alert("Unable to register: " + e.message);
        Kii.logger("Unable to register user: " + e.message);
    }
}

// the user clicked the 'sign in' button
function performLogin() {
    KiiUser.authenticate(<username>, <password>, {
        success: function(Auser) {
            user = Auser;
            var bucket = user.bucketWithName("data"); // a KiiBucket
             var query = KiiQuery.queryWithClause();
             var queryCallbacks = {
             success: function(queryPerformed, r, nextQuery) {
                 console.log(r.constructor.name,r);
                 r[0].refresh({success:function(obj){
                     data=obj;
                     if(data.get("data")==undefined){
                         data.set("data",{});
                     }
                     data.save({success:function(Sobj){
                         data=Sobj;
                         [...
                         ...some data object manipilation then save it
                         ...]
                     }});

                 }});
             },
             failure: function(queryPerformed, anErrorString) {
             }
             };

             bucket.executeQuery(query, queryCallbacks);
        },
        // callback for failed registration
        failure: function(theUser, anErrorString) {
            alert("Unable to register: " + anErrorString);
            Kii.logger("Unable to register user: " + anErrorString);
        }
    });

};
Kii.initializeWithSite(<...>, <...>, KiiSite.US);
[...
other code
...]
4

1 に答える 1

2

KiiUser のカスタム フィールドを使ってみませんか?

このページでは「カスタムフィールドの操作」として説明しています。

http://documentation.kii.com/ja/guides/javascript/managing-users/user-attributes/

API の詳細については、次のリンクを確認してください。

于 2013-09-27T15:43:03.497 に答える