Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to call a Firebase server "function" from within a client app, say with Angular 2?

So Firebase offers something called "functions", which is essentially a nodejs server that has all of the Firebase stuff preconfigured and has all the scaling automatically handled. I'm wondering, is there a way to call a function inside of the "functions" index.js file from an angular 2 app?

I need to utilize the firebase-admin npm module to check if a user's email exists and then grab the uid for that user, if it does.

According to this link, I can setup my index.js file such as:

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);
}

Is there a way I can call getUserByEmail() inside of a component in my Angular 2 app?

Thanks in advance!

like image 668
Stevie Star Avatar asked Apr 06 '17 01:04

Stevie Star


2 Answers

There are two primary ways of invoking a Cloud Function directly from client code.

You can use a database trigger which responds when some location in your Firebase project's Realtime Database changes.

You can also use an HTTP trigger which response when you access an HTTP endpoint. For a web app, you use whatever method you want to invoke an XHR transaction.

Whichever one you use is up to the architecture of your app, and to some degree your preference. There are plenty of samples of both, and more, in the provided sample code.

You can definitely use the Firebase admin SDK to access your project from within your function code. Many of the samples do exactly that.

like image 197
Doug Stevenson Avatar answered Nov 10 '22 01:11

Doug Stevenson


Firebase just released a new SDK on March 20 which allows you to call HTTPS trigger like function from the client side and the best part is it checks the user auth so you can restrict the functions to be only called by authenticated users and easily acces their account details such as email,uid,name etc. See more at: https://firebase.google.com/docs/functions/callable

like image 21
Can Avatar answered Nov 10 '22 00:11

Can