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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Q&A

解決済

2回答

1358閲覧

Clound FunctionでDataが取ってこれなくなった(firebase)

yamady

総合スコア176

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

0グッド

0クリップ

投稿2018/04/22 21:27

編集2018/04/23 06:58

いつもお世話になっておりますmm

こちらの記事を参考にしながら、プッシュ通知を実装しようとしています。
前まで、普通にdataが取ってこれていたと思うのですが
急にFirebaseのdataが取ってこれなくなってしまいました。

バージョンは下記です。

"firebase-admin": "^5.12.0", "firebase-functions": "^1.0.1"

エラー内容&困っていること

下記のソースコードで
console.log('event', event);をした結果は下記のように表示されるのですが

event { before: DataSnapshot { app: FirebaseApp { firebaseInternals_: [Object], services_: {}, isDeleted_: false, name_: '__admin__', options_: [Object], INTERNAL: [Object] }, instance: 'https://[project_name].firebaseio.com', _path: '/deals/AAAAAAAAAAAAA', _data: null }, after: DataSnapshot { app: FirebaseApp { firebaseInternals_: [Object], services_: {}, isDeleted_: false, name_: '__admin__', options_: [Object], INTERNAL: [Object] }, instance: 'https://[project_name].firebaseio.com', _path: '/deals/AAAAAAAAAAAAA', _data: 'hoge' } }

console.log('item', item);はundefinedとなってしまいます。

item undefined

ソースコード

JavaScript

1admin.initializeApp(functions.config().firebase); 2 3// 取引が成立した時のプッシュ 4 5exports.dealPush = functions.database.ref('/deals/{dealId}') 6.onWrite(event => { 7 8 console.log('event', event); 9 const item = event.data; 10 console.log('item', item); 11 const ownerId = item.child("ownerId").val(); 12 const payload = { 13 notification: { 14 body: "取引が成立しました", 15 badge: "1", 16 sound: "default" 17 } 18 }; 19 20 getTargetFcmToken(ownerId, function(token) { 21 pushToDevice(token, payload); 22 }); 23});

他に試してみたこと

event._dataevent.child("data")など試してみましたが一行にできませんした・・・(汗

  1. 追記

StackoverFlowにあったみたいに

exports.dealPush = functions.database.ref('/deals/{dealId}')

exports.dealPush = functions.database.ref(`/deals/{dealId}`)

にクオテーション変えてみましたが、変化ありませんでした。

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

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

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

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

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

kakajika

2018/04/23 06:15

firebase-functionsのバージョンはいくつですか?
yamady

2018/04/23 06:57

修正依頼いただきましてありがとうございます!1.0.1となります!こちらバージョンをそれぞれ追記させていただきます。
guest

回答2

0

ベストアンサー

firebase-functios 1.0.0 以上ですと、APIの変更があるのでこちらを参考に移行してみてください。

https://firebase.google.com/docs/functions/beta-v1-diff?hl=ja

投稿2018/04/23 07:57

kakajika

総合スコア3131

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

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

yamady

2018/04/23 21:50

そういうことですか・・!完全に失念しておりました。 こちら参考にして進めていければと思います!ありがとうございます^^
yamady

2018/04/24 03:48

通過できました。ありがとうございます(_ _)
guest

0

(`/deals/${dealId}`)

$サインが抜けてます。

投稿2018/04/22 22:54

HayatoKamono

総合スコア2415

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

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

yamady

2018/04/22 23:16

ご回答ありがとうございます! ReferenceError: dealId is not defined $サインをつけてみたのですが、上記のエラーが発生してしまいました。 特定のdealIdではないため、定義するのは難しそうです。 https://qiita.com/k-boy/items/419ad3a6f1ffd86c20f1 こちらのサイトを参考にしたのですが、何かしらdealsの中のId下にあるものが更新されたら加わるようにしたいのですが。。
HayatoKamono

2018/04/23 00:04

なるほど。変数という訳ではなかったのですね。
HayatoKamono

2018/04/23 01:36

event.data.val()でもダメなのでしょうか?
yamady

2018/04/23 07:00

Hayatoさま、いつも迅速なご回答をいただきましてありがとうございます。 すごく私事ですが、先ほどPCが壊れてしまい修理に出している状況でして、確認まだできていません。 後ほど、確認してみます!本当にいつも助かります! ありがとうございます!!
yamady

2018/04/24 03:48

なんとか通すことができました。 ご回答いただきましてありがとうございます^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問