質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1495閲覧

Cloud FunctionsでRequestにセットした配列の値が取得できない

kouji-t

総合スコア10

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/04/07 05:42

編集2022/01/12 10:55

Cloud Functions でのRequestの値の取得方法を、教えて頂けないでしょうか。

###前提・実現したいこと
Requestで送信したパラメータから、配列でセットされたデータを取得したい。
よろしくお願い致します。

開発環境
送信側 Java Idea
Cloud側 Javascript  Cloud Function 

###発生している問題・エラーメッセージ
配列の外の値は取得できて、データストアに登録できている。

配列でセットしたパラメータを、For文で取得処理を行っているが値が取れない。
エラーはキャッチされていない。

###試したこと
値をセットした配列の datas をログで表示したが

models.dto.functions.GoodPricesDetailDto@96b7b12

と表示されるだけで、内容が表示されない。

値を設定しているJava

Java

1 2 //配列用の変数を定義 3 List<GoodPricesDetailDto> goodsPriceDteailDtoList = new ArrayList<GoodPricesDetailDto>(); 4 5 6 int no = 1; 7 for (GoodsPriceItemForm goodsPriceItemForm : goodsPriceForm.getPriceItems()) { 8 9 if (!StringUtils.isEmpty(goodsPriceItemForm.getPriceItemName())) { 10 11 com.eaio.uuid.UUID priceItemId = new com.eaio.uuid.UUID(); 12 13 MGoodsPriceDetails mGoodsPriceDetails = new MGoodsPriceDetails(); 14 mGoodsPriceDetails.setPriceDetailId(priceItemId.toString()); 15 16 mGoodsPriceDetails.setGoodsId(goodsPriceForm.getGoodsId()); 17 18 mGoodsPriceDetails.setPriceItemName(goodsPriceItemForm.getPriceItemName()); 19 mGoodsPriceDetails.setOrderNo(goodsPriceItemForm.getOrderNo()); 20 mGoodsPriceDetails.setPriceTypeId(goodsPriceItemForm.getPriceTypeId()); 21 mGoodsPriceDetails.setUnitPrice(Double.parseDouble(goodsPriceItemForm.getUnitPrice())); 22 mGoodsPriceDetails.setOrderNo(no); 23 mGoodsPriceDetails.save(); 24 25//ここから 配列をセットしている 26 //Cloud Function の準備 27 GoodPricesDetailDto goodPricesDetailDto = new GoodPricesDetailDto(); 28 goodPricesDetailDto.setGoodsId(mGoodsPriceDetails.getGoodsId().toString()); 29 goodPricesDetailDto.setActionType(actionTypeFlg); 30 goodPricesDetailDto.setOrderNo(mGoodsPriceDetails.getOrderNo().toString()); 31 goodPricesDetailDto.setPriceTypeId(mGoodsPriceDetails.getPriceDetailId()); 32 goodPricesDetailDto.setPriceItemName(mGoodsPriceDetails.getPriceItemName()); 33 goodPricesDetailDto.setUnitPrice(String.valueOf(mGoodsPriceDetails.getUnitPrice())); 34 //goodPricesDetailDto.setCreatedAd(DateUtils.toString(mGoodsPriceDetails.getCreatedAt(), Const.DB_DATE_FULL_FORMAT)); 35 goodPricesDetailDto.setCreatedAd(mGoodsPriceDetails.getCreatedAt().toString()); 36 37 goodsPriceDteailDtoList.add(goodPricesDetailDto); 38//ここまで 39 } 40 no++; 41 } 42 43 44 // Cloud Functionへ 45 GoodsPriceDto goodsPriceDto = new GoodsPriceDto(); 46 47 goodsPriceDto.setGoodsId(goodsPriceForm.getGoodsId().toString()); 48 goodsPriceDto.setManagementsFree(String.valueOf(mGoodsPrices.getManagementFee())); 49 goodsPriceDto.setActionType(actionTypeFlg); 50 goodsPriceDto.setUserId(userId.toString()); 51 goodsPriceDto.setPrice(String.valueOf(mGoodsPrices.getPrice())); 52 goodsPriceDto.setPaidPayment(String.valueOf(mGoodsPrices.getPaidPayment())); 53 goodsPriceDto.setManagementsFree(String.valueOf(mGoodsPrices.getManagementFee())); 54 goodsPriceDto.setCreatedAd(mGoodsPrices.getCreatedAt().toString()); 55 56//値をセットした配列を代入する 57 goodsPriceDto.setDatas(goodsPriceDteailDtoList); 58 59 String firebaseUrl = ConfigFactory.load().getString("url"); 60 61 Map map = BeanUtils.describe(goodsPriceDto); 62 63 ClientCloudFunctions cloudFunctions = new ClientCloudFunctions(); 64 cloudFunctions.execute(firebaseUrl, map); 65 66 Ebean.commitTransaction(); 67 } catch (Exception e) { 68 Ebean.rollbackTransaction(); 69 } finally { 70 Ebean.endTransaction(); 71 } 72 73 74

値を取得するCloud Function側のJSスクリプト

JS

1 2 // GET パラメーター 3 if (req.method == 'POST') { 4 5 // DBに接続 6 // キーを設定 7 // DBに保存する内容を作成する 8 const prices = { 9 key: datastore.key(['goodsPrices', priceId]), 10 data: { 11 goods_id: req.body.goodsId, 12 action_type: req.body.actionType, 13 user_id: req.body.userId, 14 price: req.body.price, 15 minimum_price: req.body.minimumPrice, 16 paid_payment: req.body.paidPayment, 17 managements_free: req.body.managementsFree, 18 created_ad: req.body.createdAd 19 } 20 }; 21 22 // データベースへ保存 23 datastore.upsert(prices) 24 .catch(() => res.status(400).send('goodsPrices upsert err') 25 ); 26 27 for (item in req.body.datas) { 28 console.log(req.body.datas) 29 30 31 // DBに保存する内容を作成する 32 const priceDetails = { 33 key: datastore.key(['goodsPriceDetails', uuid()]), 34 data: { 35 36//// ここから 値の取得ができない 37 38 bk_goods_prices_id: priceId, 39 goods_id: req.body.datas[item].goodsId, 40 action_type: req.body.datas[item].actionType, 41 order_no: req.body.datas[item].orderNo, 42 price_type_id: req.body.datas[item].priceTypeId, 43 price_item_name: req.body.datas[item].priceItemName, 44 unit_price: req.body.datas[item].unitPrice, 45 created_ad: req.body.datas[item].createdAd 46//// ここまで 47 } 48 49 }; 50 51 // データベースへ保存 52 datastore.upsert(priceDetails) 53 .catch(() => { 54 res.status(400).send('goodsPrices upsert err'); 55 }); 56 } 57 res.status(200).send('Success: entryed'); 58 59 } else { 60 res.status(400).send('No message defined!'); 61 } 62};

備考
こちらでも質問させて頂いております。
https://ja.stackoverflow.com/questions/43048/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問