NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

ユーザのロールへの追加について #307

Closed to-MoMon closed 8 years ago

to-MoMon commented 8 years ago

Javascript SDKのNCMBRoleのaddUserを利用してユーザ登録の時にロールを設定しているのですが、同じロールに2人以上登録したいのですができません。 解決方法を教えていただけませんか?

goofmint commented 8 years ago

該当部分のコードを見ればアドバイスできるかなぁと。addUserが配列(複数ユーザ)に対応しているのかどうかが気になります。

https://github.com/NIFTYCloud-mbaas/ncmb_js/blob/master/lib/role.js#L223

ここら辺ですよね。

to-MoMon commented 8 years ago

返信ありがとうございます。 Userインスタンスの配列が理解できなかったため、ご指摘の通りかと思います。 addUserが配列に対応するようにするにはどうすれば良いのでしょうか。

ご教授のほどよろしくお願いいたします。 以下、ソースコードです。

//ログイン・新規登録処理 $("form").on("submit", function(){ var username = $("#username").val(); var password = $("#password").val(); var role_val = $("#id").val();//ロールの値

            //ログイン
            ncmb.User.login(username, password)
            .then(function(){
                //ログイン成功
                alert("ログイン成功");
                location.href = "main.html";
            })
            .catch(function(){
                //ログイン失敗
                var user_array = [new ncmb.User()];

                //ユーザー名とパスワードをインスタンスに設定
                user_array[0].set("userName", username);
                user_array[0].set("password", password);

                user_array.push(new ncmb.User());

                user_array[1].set("userName", "hoge");
                user_array[1].set("password", "hoge");

                //新規登録
                user_array.signUpByAccount()
                .then(function(user_array){
                    var role = new ncmb.Role(role_val);
                    role.addUser(user_array).save()
                    .then(function(){
                        console.log("success"); // 検索結果の件数を表示
                    })
                    .catch(function(err){
                        console.log(err);
                    });
                    //ログイン
                    ncmb.User.login(username, password)
                    .then(function(){
                        //ログイン成功
                        alert("新規登録&ログイン成功");
                        location.href = "main.html";
                    })

                });
            })
goofmint commented 8 years ago

たぶん、2回保存を実行すれば良いのかなと。user_arrayを順番に処理する感じで。

ちなみに

user_array.signUpByAccount()

これって動くのでしょうか?

to-MoMon commented 8 years ago

返信ありがとうございます。 var role = new ncmb.Role(role_val); の部分は一回 role.addUser(user_array[]).save() の部分を複数回(ユーザの人数分の回数) を行うという解釈でよろしいでしょうか?

ご指摘の箇所は動かないです。 これも上と同じように登録人数分実行することが必要だと思います。 初心者で質問ばかりですが、ご教授のほどよろしくお願いいたします。

goofmint commented 8 years ago

そうですね> addUserを複数回

具体的な処理は分かりませんが、user_array.signUpByAccount()は無理なので、その必要回数分行ってください。

to-MoMon commented 8 years ago

返信ありがとうございます。 問題は解決しました。 ご教授ありがとうございました。