7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

開発環境でcloud functions(firebase)の動作が遅い理由

Posted at

遭遇した問題

firebaseのcloud functionsが実行されるまでの時間が異様に長い。トリガーの条件を満たしてから、5秒前後かかってからデータに実行結果が反映されることがある。

結論

cloud functionsに一定期間のアクセスがない場合は、自動的にインスタンスがスリープモードに入る。そのために、しばらくぶりにアクセスがあると、インスタンスが起動するまでに数秒間の時間がかかる。
functionが実行される条件を満たしてから、functionを実行するためのインスタンスを立ち上げるイメージ。

取り組んでいた問題

チャットボットを作成しているときに、新しいチャットルームが作成されたら、ユーザーにメッセージを送信するプログラムを書いていた。

index.js
var functions = require('firebase-functions');

exports.didCreateMainChat = functions.database.ref('main_chat/channels/{channelId}')
  .onWrite(event => {
    if (!event.data.exists()) {
      return;
    }
    var newMessageRef = event.data.ref.child('messages').push()
    newMessageRef.set({
      sender: "server",
      message: "初めまして!"
    })
  })

解決策

特になし。
頻繁にリクエストが送られている場合は、今回の問題は発生しないはずなので、開発環境特有の問題である。本番環境ではインスタンスが停止することはないはずなので、大した問題にならない。

参考

http://stackoverflow.com/questions/42726870/firebase-cloud-functions-is-very-slow
このstack overflowに同様の質問が書かれていた。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?