firebase functions単位にファイル分割
前回、サムネイルをつくるfunctionと翻訳するfunctionを作ったが
2つのfunctionを1つのindex.jsに書くという通常の開発ではありえない事をした
node.jsの初心者なんでトライアンドエラーで分割をした
いけていない所があります
try { admin.initializeApp(functions.config().firebase); } catch (err) { //console.error('Firebase initialization error', err.stack) }
トライ・アンド・キャッチしている所です
別の所で定義するとエラーでうごかず、
trycathcにしないとデプロイができない
デプロイのエラー
Error: The default Firebase app already exists. This means you called initializeApp() more than once without providing an app name as the second argument. In most cases you only need to call initializeApp() once. But if you do want to initialize multiple apps, pass a second argument to initializeApp() to give each app a unique name. at FirebaseAppError.FirebaseError [as constructor] (/tmp/fbfn_11222Qg6NpvXGscFd/node_modules/firebase-admin/lib/utils/error.js:25:28) at new FirebaseAppError (/tmp/fbfn_11222Qg6NpvXGscFd/node_modules/firebase-admin/lib/utils/error.js:70:23) at FirebaseNamespaceInternals.initializeApp (/tmp/fbfn_11222Qg6NpvXGscFd/node_modules/firebase-admin/lib/firebase-namespace.js:38:23) at FirebaseNamespace.initializeApp (/tmp/fbfn_11222Qg6NpvXGscFd/node_modules/firebase-admin/lib/firebase-namespace.js:237:30) at Object.<anonymous> (/tmp/fbfn_11222Qg6NpvXGscFd/generateThumbnail/index.js:6:8) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.require (module.js:498:17) at require (internal/module.js:20:19) at Object.<anonymous> (/tmp/fbfn_11222Qg6NpvXGscFd/index.js:9:29) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.require (module.js:498:17) at require (internal/module.js:20:19) at /usr/lib/node_modules/firebase-tools/lib/triggerParser.js:18:11 at Object.<anonymous> (/usr/lib/node_modules/firebase-tools/lib/triggerParser.js:32:3)
う~ん・・・
trycatchは最終手段に近いのいずれ治したい
イベントがすべてのフォルダで取得しているみたいなので
そこも特定のフォルダのみのイベントにしたい
module.exports = functions.storage.object().onChange(event => {
今はファイルパスをチェックして処理を終了させている
(間違えているきがする・・・)
const filePath = event.data.name; // filePath uploads以外はサムネイルを作らない if (!filePath.startsWith('uploads')) { console.log('This is not "uploads/" path.'); console.log(filePath); return; }
node.jsの経験がないから、本当に時間がかかる
楽しいからいいですけど〜♪
Google Android Firebase: Learning the Basics (English Edition)
- 作者: Bill Stonehem
- 発売日: 2016/07/02
- メディア: Kindle版
- この商品を含むブログを見る