web-dev-qa-db-ja.com

クライアントアプリ内からFirebaseサーバーの「関数」を呼び出す方法はありますか?たとえばAngular 2?

そのため、Firebaseは「関数」と呼ばれるものを提供します。これは基本的に、Firebaseのすべてのものが事前構成され、すべてのスケーリングが自動的に処理されるnodejsサーバーです。 angular 2アプリから "functions" index.jsファイル内の関数を呼び出す方法はありますか?

Firebase-admin npmモジュールを利用して、ユーザーのメールアドレスが存在するかどうかを確認し、存在する場合はそのユーザーのuidを取得する必要があります。

これによると link 、次のようなindex.jsファイルを設定できます。

_const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

// I'm actually not sure if this is how you do this part:
exports.getUserByEmail = (email) => {
  return admin.auth().getUserByEmail(email);
}
_

Angular 2アプリのコンポーネント内でgetUserByEmail()を呼び出す方法はありますか?

前もって感謝します!

8
Stevie Star

クライアントコードから直接クラウド関数を呼び出すには、主に2つの方法があります。

データベーストリガー を使用できます。これは、Firebaseプロジェクトのリアルタイムデータベースの一部の場所が変更されたときに応答します。

HTTPトリガー HTTPエンドポイントにアクセスしたときの応答を使用することもできます。 Webアプリの場合、XHRトランザクションを呼び出す方法を使用します。

どちらを使用するかは、アプリのアーキテクチャとある程度の好みによって異なります。提供されている サンプルコード には、両方のサンプルがたくさんあります。

間違いなくFirebaseadmin SDKを使用して、関数コード内からプロジェクトにアクセスできます。サンプルの多くはまさにそれを行っています。

8
Doug Stevenson

Firebaseは3月20日に新しいSDKをリリースしました。これにより、クライアント側からHTTPSトリガーのような関数を呼び出すことができます。最も優れているのは、ユーザー認証をチェックするため、認証されたユーザーのみが呼び出すように関数を制限し、アカウントに簡単にアクセスできることです。メール、uid、名前などの詳細。詳細については、次を参照してください: https://firebase.google.com/docs/functions/callable

1
Can Taşpınar