タグ付けされた質問 「google-cloud-functions」

14
Cloud Functions for Firebaseを構造化して、複数のファイルから複数の関数をデプロイするにはどうすればよいですか?
複数のCloud Functions for Firebaseを作成し、1つのプロジェクトからすべてを同時にデプロイしたいと考えています。また、各機能を個別のファイルに分けたいと思います。現在、次のようなindex.jsに両方を配置すると、複数の関数を作成できます。 exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); exports.bar = functions.database.ref('/bar').onWrite(event => { ... }); しかし、fooとbarを別々のファイルに入れたいと思います。私はこれを試しました: /functions |--index.js (blank) |--foo.js |--bar.js |--package.json foo.jsは exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); そしてbar.jsは exports.bar = functions.database.ref('/bar').onWrite(event => { ... }); すべての関数をindex.jsに配置せずにこれを実現する方法はありますか?

7
Firebase Cloud Function HTTPエンドポイントを保護してFirebase認証済みユーザーのみを許可するにはどうすればよいですか?
新しいfirebaseクラウド関数を使用して、HTTPエンドポイントの一部をfirebaseに移動することにしました。すべてがうまくいきます...しかし、次の問題があります。HTTPトリガー(Cloud Functions)によってビルドされた2つのエンドポイントがあります ユーザーを作成し、Firebase Admin SDKによって生成されたカスタムトークンを返すAPIエンドポイント。 特定のユーザーの詳細を取得するためのAPIエンドポイント。 最初のエンドポイントは問題ありませんが、2番目のエンドポイントについては、認証されたユーザーに対してのみ保護したいと思います。以前に生成したトークンを持っている人を意味します。 これを解決するにはどうすればよいですか? 私はクラウド関数でヘッダーパラメーターを取得できることを知っています request.get('x-myheader') しかし、リアルタイムデータベースを保護するのと同じようにエンドポイントを保護する方法はありますか?

19
Cloud Functions for FirebaseでCORSを有効にする
現在、Firebase向けの新しいCloud Functionsの使用方法を学んでいますが、AJAXリクエストを介して記述した関数にアクセスできないという問題があります。「 'Access-Control-Allow-Origin'がありません」というエラーが表示されます。これが私が書いた関数の例です: exports.test = functions.https.onRequest((request, response) => { response.status(500).send({test: 'Testing functions'}); }) 関数は次のURLにあります:https : //us-central1-fba-shipper-140ae.cloudfunctions.net/test Firebase docsは関数内にCORSミドルウェアを追加することを提案していますが、試してみましたが、機能しません:https : //firebase.google.com/docs/functions/http-events これは私がそれをした方法です: var cors = require('cors'); exports.test = functions.https.onRequest((request, response) => { cors(request, response, () => { response.status(500).send({test: 'Testing functions'}); }) }) 何が悪いのですか?これで何か助けていただければ幸いです。 更新: Doug Stevensonの回答が役立ちました。({origin:true})を追加すると問題が修正され、最初は完全に見落としたものに変更response.status(500)する必要もありましたresponse.status(200)。

5
Firebaseクラウド機能が非常に遅い
現在、新しいfirebaseクラウド機能を使用するアプリケーションに取り組んでいます。現在起こっているのは、トランザクションがキューノードに置かれていることです。そして、関数はそのノードを削除し、それを正しいノードに配置します。これは、オフラインで作業できるために実装されました。 現在の問題は、関数の速度です。関数自体は約400msかかるので、それで問題ありません。ただし、エントリがすでにキューに追加されている間、関数に非常に長い時間がかかる場合があります(約8秒)。 サーバーが起動するのに時間がかかると思われます。これは、最初のアクションをもう一度実行するときに発生するためです。時間がかかりません。 この問題を解決する方法はありますか?ここで、関数のコードを追加しました。何も問題はないようですが、念のため追加しました。 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const database = admin.database(); exports.insertTransaction = functions.database .ref('/userPlacePromotionTransactionsQueue/{userKey}/{placeKey}/{promotionKey}/{transactionKey}') .onWrite(event => { if (event.data.val() == null) return null; // get keys const userKey = event.params.userKey; const placeKey = event.params.placeKey; const promotionKey = event.params.promotionKey; const transactionKey = event.params.transactionKey; // init …

21
Cloud Functions for FirebaseでアップロードされたファイルからダウンロードURLを取得する
Functions for Firebaseを使用してファイルをFirebase Storageにアップロードした後、ファイルのダウンロードURLを取得したいと思います。 私はこれを持っています: ... return bucket .upload(fromFilePath, {destination: toFilePath}) .then((err, file) => { // Get the download url of file }); オブジェクトファイルには多くのパラメータがあります。という名前でもmediaLink。ただし、このリンクにアクセスしようとすると、次のエラーが発生します。 匿名ユーザーにはオブジェクトへのstorage.objects.getアクセス権がありません... 誰かがパブリックダウンロードURLを取得する方法を教えてもらえますか? ありがとうございました

3
他の関数に影響を与えずに、いくつかの関数をCloud Functions for Firebaseにデプロイするにはどうすればよいですか?
走ると firebase deploy --only functions index.jsファイルを読み取り、そのファイルからエクスポートされたすべての関数を更新します。以前のデプロイにという名前の関数がありa、現在のデプロイにそのような関数がない場合、aは削除されます。 つまり、既存の関数をすべて削除してから、現在のindex.jsファイルのすべての関数を追加した場合と同じ効果が得られます。 個々の関数を追加/更新/削除することは可能ですか?


2
HTTPエラー:AndroidプロジェクトのFirebaseクラウド機能のセットアップ中に401
Firebase関数を設定しようとしていますが、firebaseinitを実行した後にエラーが発生します。 エラー:HTTPエラー:401、リクエストに無効な認証資格情報がありました。必要なOAuth2アクセストークン、ログインCookie、またはその他の有効な認証資格情報。https://developers.google.com/identity/sign-in/web/devconsole-projectを参照してください。

6
Cloud Functions forFirebase-請求先アカウントが構成されていません
Firebase用の新しいCloudFunctionsを実装したばかりですが、ログに気になることがあります。 請求先アカウントが構成されていません。外部ネットワークにアクセスできず、割り当てが大幅に制限されています。これらの制限を削除するように請求先アカウントを構成します 私は実際に外部ネットワークから機能にアクセスすることができたので、本当に請求先アカウントを提供する必要があるのでしょうか?Firebaseのドキュメントにはこれについて何もありません。 個人的なテスト目的でSparkサブスクリプションプランを使用していますが、まだ料金を支払う予定がない場合は、請求情報を追加したくありません。

3
CloudFunctionsとFirebaseFunctionsの違いは何ですか?
クラウド機能とFirebase関数(または「Firebaseのためのクラウド機能」)の両方を同じに見えます。それぞれのユースケースを説明してください。 どちらもHTTP関数を使用します。 でクラウド機能: exports.helloHttp = function helloHttp (req, res) { res.send(`Hello ${req.body.name || 'World'}!`); }; そしてFirebase関数で: exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); }); これらの違いは何ですか?

2
GCPからの「必要なアクション」メールを理解し、re:Cloud Build APIを有効にする
私は、Google Cloud Platformではなく、Firebaseをウェブアプリに使用しています-裏では、すべてのFirebaseプロジェクトもGCPプロジェクトであることを認識しています。 GCPからメールを受け取りました(抜粋): [必要なアクション]:2020年4月20日までにプロジェクトのCloud Build APIを有効にして、Cloud Functionが正しくビルドおよびデプロイされるようにしてください... Cloud Functionを確実にするには、プロジェクトのCloud Build APIを有効にする必要があります正しく構築および配置されます。APIを有効にすると、Cloud Build、Container Registry、またはCloud Storageの使用量がこれらの製品の無料枠の制限を超えると、料金が発生する場合があります。 これはFirebaseのデプロイまたは開発プロセスに影響しますか? (例えば、私は今使用しますfirebase deploy) 私の知る限り、答えはノーです。1日あたりの最大ビルド時間を大きくするだけです。ただし、メールではFirebaseについてはまったく触れられていないため、4月20日までに他の影響を十分に理解したいと思います。

1
Firebaseのサイズ変更拡張機能の完了後にダウンロードURLを取得する
これは私が達成しようとしていることであり、firebaseのサイズ変更画像拡張を実装し、画像をアップロードし、サイズ変更が完了したら、そのdowloadUrlのつまみをCloud Firestoreドキュメントに追加します。この質問は私に役立ちますが、それでも親指を識別してダウンロードURLを取得することはできません。これは、これまで試みてきたものです。 注:サムネイルをroot / thumbsに設定しました const functions = require('firebase-functions'); const { Storage } = require('@google-cloud/storage'); const storage = new Storage(); exports.thumbsUrl = functions.storage.object().onFinalize(async object => { const fileBucket = object.bucket; const filePath = object.name; const contentType = object.contentType; if (fileBucket && filePath && contentType) { console.log('Complete data'); if (!contentType.startsWith('thumbs/')) { …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.