2017-12-05 5 views
0

私はFirebaseデータベースを持っており、いくつかの機能を実装しました。たとえば、/lists/{list_id}/が作成されると、関数は自動的に/lists/{list_id}/created_onを現在のタイムスタンプに設定します。Firebase機能を起動せずにファイルからデータベースをインポートする

ファイルからデータベースをインポートすると、Firebaseはこれらすべての機能を実行しているので、すべてのリストのcreated_onは現在のタイムスタンプに設定されています。

私はまた、追加時に電子メールを送信する機能を持っていますが、私はそれらもまた発砲したくありません。

どうすればよいですか?私は任意の機能をトリガーせずにファイルからDBを復元したいです。

+1

醜い回避策が見つかりました:https://console.cloud.google.com/functions/にアクセスし、すべての機能を削除してください。ファイルをdbからインポートし、再デプロイします。 1)将来DBを復旧する必要があるときに、忘れてしまう可能性が高いからです。 2)再デプロイする必要があります:無効/有効にする方がはるかに簡単です...より良い方法はありますか? – user2145097

答えて

0

実際のユーザーがプロジェクトを使用していない完全にクリーンな状態から復元していますか?その場合は、空のindex.jsをデプロイしてすべての機能をアンデプロイし、インポートを実行してから、すべての関数を再度デプロイします。これはすべてFirebase CLIで達成できるはずです。

影響を与えたくない正当な使用がある間にインポートするレコードがある場合は、機能をオフにすることをおすすめしません。その代わりに、インポートデータをマッサージして、特定のフィールドが処理の対象から除外されることを示す子を追加し、それらの関数がその子が存在するかどうかを確認するようにすることができます。その子が後で削除されることがあります。

+0

私は、破損のためにバックアップファイルからデータベースを復元しました(これは将来起こります)。だから、「子供の旗」を追加することは私のためには機能しません。特定のキー(例:/ internal/make_sure_functions_are_off)の作成時にトリガされる関数を追加することを考え、db全体を削除し、「dbを復元する前に関数を削除するのを忘れました」というメッセージで置き換えます。この特別なキーは常にdbにあります。この方法で、私が再び復元して機能を削除するのを忘れると、私は役に立つリマインダを得るでしょう。しかし、それは唯一の回避策ではなく、実際の解決策です... – user2145097

関連する問題