2013-08-06 1 views
1

В моем приложении каждый KiiUser имеет одну хэш-таблицу данных. Но у меня есть некоторые проблемы с использованием KiiObject для сохранения данных и получения их в следующий раз. Я хочу создать KiiObject с определенной URI, когда пользователь регистрирует это каждый раз, когда он LOGINS я могу импортировать его сuse kiiObject для сохранения пользовательских данных

KiiObject.objectWithURI(<URI>) 

В качестве альтернативы, как использовать objectWithJSON(). Я не хочу использовать 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 
...] 

ответ

2

Как об использовании пользовательских полей KiiUser в?

На этой странице описывается как «Манипулирование настраиваемыми полями».

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

Проверить эти ссылки для детализации API: