ロールでのUser追加操作にハマった。
初投稿ですが、ハマったことをメモします。
一番ハマったのはaddRoleの仕方
新規でRole作った際のサンプルはあるのですが、すでにRoleがあってすでにいるUserをどうやったら追加できるかわからなかった。
role.jsの説明
とりあえず上記を見つつ、他の人の記事も見てようやく今のログインユーザーで登録する方法はわかった。
- DataStoreと大体同じ。fetchAllとかでとってきて、updateでいい
- だけど、roleクラスはクラスを指定しないでいい(常にRoleだから、Userも同じ)
- newは新規登録じゃないのでいらない
- addUserは「Userクラス」を入れる。userNameだけじゃダメ!!
サンプルソースは以下のとおり。
roleのレコードを見る
function showRolesList(){
ncmb.Role.fetchAll()
.then(function(results){
if (results.length == 0 ){
alert("roleがないです");
} else {
alert(results.length);
for (i = 0; i < results.length; i++){
alert(results[i].get("roleName"));
}
}
})
.catch(function(err){
alert(err);
});
}
roleにUserを足す
//Roleにログイン中のCurrentUserを追加登録する
function addRoleTest(){
var currentUser = ncmb.User.getCurrentUser();
ncmb.Role.equalTo("roleName", "test")
.fetchAll()
.then(function(results){
if (results.length == 0 ){
alert("roleがないです");
} else {
alert(results.length);
alert(results[0].get("roleName"));
var r = results[0]
r.addUser(currentUser)
.update()
.then(function(results){
alert("OK")
})
.catch(function(err){
alert(err);
});
}
})
.catch(function(err){
alert(err);
})
}
いやーつまりました。解決した。
ついついaddUser(userName)ってしちゃうけど、addUser(userクラスのレコード)じゃないとダメ。