実現したいこと
ファイルストアに画像を登録した後に、その公開URLを会員フィールドに保存させてからキャッシュを更新してcurrentUserに取得させたいです
試したこと
errorは出てない状態です。
画像のほかに、複数のフィールドにあるテキストも更新していいるのですが、公開URL以外は反映されていました。
画像はinput fileから画像を読み込み、croppieプラグインで編集したものをblobでファイルストアに保存しているといった感じです。
画像はファイルストアに保存されていてアプリを再起動すると会員の公開URLは変更されています。
キャッシュの更新の仕方に問題があるのでしょうか?
ご回答宜しくお願い致します。
問題のコード
//ユーザー情報更新 await currentUser.update(); //キャッシュを更新 currentUser = await ncmb.User.equalTo('objectId', currentUser.objectId).fetch(); currentUser.set('sessionToken', ncmb.sessionToken) localStorage.setItem(`NCMB/${ncmb.apikey}/currentUser`, JSON.stringify(currentUser));
全体のコード
//ユーザーアイコンblob let n_user_icon_blob = my_navigator.topPage.data.i_blob; //画像が設定されている場合 if(n_user_icon_blob != undefined){ //アイコン画像が設定されていた場合、それを削除する if(currentUser.Icon != null){ //保存しているアイコン画像を削除する await ncmb.File.delete(currentUser.Icon.substr(84)); } //file input DOM var pu_user_image_input_file = document.getElementById("Pu_user_image_input_file"); //ファイルに画像がセットされている場合 if(pu_user_image_input_file.files.length === 1){ //画像が設定されていた場合、それを削除する if(currentUser.Image != null){ //保存しているアイコン加工前の画像を削除する await ncmb.File.delete(currentUser.Image.substr(84)); } //アイコン加工前の画像名 - アイコン用に切り抜く前にその元の画像を保存する var pu_user_image_name = M_change_to_base64_and_Blob_to_image_Save(pu_user_image_input_file, "user_image_"); await currentUser .set("Image"," 公開URL") } //アイコン画像の名前 var user_icon_name = "user_icon_" + currentUser.objectId + ".png" //画像アップロード await ncmb.File.upload(user_icon_name, n_user_icon_blob); //画像をユーザーアイコンに保存 await currentUser .set("Icon", "公開URL") } //名前DOM var pu_user_name_input = document.getElementById("Pu_user_name_input"); //ふりがなDOM var pu_user_furigana_input = document.getElementById("Pu_user_furigana_input"); //部署DOM var pu_duv_input = document.getElementById("Pu_duv_input"); //紹介文DOM var pu_profile_textarea = document.getElementById("Pu_profile_textarea"); //名前が変わってたら更新 if(pu_user_name_input.value != currentUser.Name){ await currentUser.set("Name", pu_user_name_input.value); } //ふりがなが変わってたら更新 if(pu_user_furigana_input.value != currentUser.Furigana){ await currentUser.set("Furigana", pu_user_furigana_input.value); } //部署が変わってたら更新 if(pu_duv_input.value != currentUser.Division){ await currentUser.set("Division", pu_duv_input.value); } //紹介文が変わってたら更新 if(pu_profile_textarea.value != currentUser.Profile){ await currentUser.set("Profile", pu_profile_textarea.value); } //ユーザー情報更新 await currentUser.update(); //キャッシュを更新 currentUser = await ncmb.User.equalTo('objectId', currentUser.objectId).fetch(); currentUser.set('sessionToken', ncmb.sessionToken) localStorage.setItem(`NCMB/${ncmb.apikey}/currentUser`, JSON.stringify(currentUser)); //戻る my_navigator.popPage();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。