var projectId = 'webapp-ccdf0'; var firestore = FirestoreApp.getFirestore(email, key, projectId); var sheet = SpreadsheetApp.getActiveSheet(); var data = firestore.getDocuments('deliverys'); var json = JSON.stringify(data, undefined, 1); function getPickupBlue(json) { return json.fields.pickups.mapValue.fields.blue.stringValue; } console.log(getPickupBlue(json)); data.forEach((json) => { console.log(json) }) // const row = 2 // const rowNum = json.length // const colNum = json[0].length // sheet.getRange(row, 1,rowNum, colNum).setValues(json) }
jsonの宣言のところはご教示いただいたものではありませんが先ほどご教示いただいたものでも試しましたが同じような結果になりました。
エラーコードは、TypeError: Cannot read property 'pickups' of undefined です。
質問は編集できますので、追記するだけなら新しい質問を投稿しないようにしましょう。
申し訳ありません。次から気をつけます。
元の質問で回答した者です。
元の質問から派生した質問のため、質問者さんに新しく質問を投稿するようにお願いしました。
@質問者さん
タイトルから内容を推察出来ない(後から同じ疑問をもったユーザーが見つけられない)ので、タイトルを変更した方が良いです。
「変数に代入したJSONオブジェクトを読み取れない」など、具体的なタイトルにしておいて下さい。
わかりました。
変更しておきます。
私の回答に合わせて変数jsonの定義を変えた上で、エラーが発生している箇所を教えて下さい。どの部分ですか?
TypeError: Cannot read property 'pickups' of undefined
やはりこのエラーが出てしまいます。
まず、そのエラーはコードの何行目で出ているかが表示されていると思うので確認して下さい。何行目でしたか?
var data = ...
の次の行で
console.dir(data);
をしてみてください。おそらくdataは配列だと思います。
getPickupBlue @ コード.gs:12
myFunction @ コード.gs:15
こう出ています。この場合は12行目、returnから始まる行になるのでしょうか??
matherさんの仰る通り、dataが配列になっているのが原因ですね。
追記しておきます。
matherさんありがとうございます。
実行してみたところ、console.dir is not a function
というエラーが出ました。
実行環境の問題ですね…失礼。
console.log(JSON.stringify(data));
で良いです。
matherさんありがとうございます!!
お二人のおかげで無事解決できました!!
本当にありがとうございました!!
回答2件
あなたの回答
tips
プレビュー