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

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

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

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

Q&A

解決済

1回答

6371閲覧

firebase cloud functions で処理が勝手に終了する

dwayne_johnson

総合スコア86

Firebase

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

0グッド

1クリップ

投稿2018/08/22 13:07

なぜかわかりませんが、cloud functionsからcloud storage のデータをダウンロードする過程で、高い頻度でfunctionが終了します。

どういうことかといいますと、

const file = storage.bucket().file(md_data_path); file.download() .then((file_data) => { console.log("やっほー"); const text_file_data = file_data[0].toString('utf-8'); return text_file_data; }) .then((md_data) => { console.log("data is this : ", md_data); //処理が続く

このような処理を行おうとすると、

Function returned undefined, expected Promise or value Function execution took 566 ms, finished with status: 'ok'

という感じで、処理が終了します。やっほーは出力されずに、終了します。

これだけなら、どこかファイルのダウンロードの手順かなんかにエラーがあるなどと考えようもあるのですが、恐ろしいのは、この関数を何度も実行すると、上手くいく時はしっかりconsole.log("data is this : ", md_data);が実行され、データの内容も問題なく、次の処理へ進めることもあります。

このエラーについて、すこし調べてみたのですが、結局あまりわからず。

なぜ起こるものなのか、ご存知の方いましたらご教授ねがいます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

file.download().略return file.download().略 にするといけますbb

ドキュメント: https://firebase.google.com/docs/functions/terminate-functions

JavaScript Promise を関数に返すと、その関数は Promise が解決されるか拒否されるまで実行を続けます。

なので、 file.download().略 が返すところの promise を return しないと、その完了を待たずに function が終了してしまっているというのが原因です。

投稿2018/08/22 14:16

編集2018/08/22 14:38
set0gut1

総合スコア2413

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

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

dwayne_johnson

2018/08/22 16:36

なるほど。 なるほど!!! returnの箇所について、見直していくと、同様の箇所が多く見つかり、それらが複合的に問題を起こしていました。 おかげさまで、大変気持ちよく眠れそうです。 ありがとうございました!
set0gut1

2018/08/23 04:56

おめでとうございます!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問