В моем приложении каждый 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
...]