2017-04-06 52 views
4

因此,Firebase提供了一些名为“功能”的东西,它实际上是一个nodejs服务器,它具有预先配置好的所有Firebase资源并自动处理所有缩放比例。我想知道,有没有办法从角2应用程序中调用“函数”index.js文件中的函数?有没有办法从客户端应用程序中调用Firebase服务器“功能”,比如说Angular 2?

我需要使用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); 
} 

有没有一种方法,我可以在我的角2的应用程序调用getUserByEmail()组件的内部?

在此先感谢!

+0

你可以通过HTTP调用一个函数 - 做你想做的任何事情。你可能想只允许来自经过验证的用户的呼叫,所以看看:https://github.com/firebase/functions-samples/tree/master/authorized-https-endpoint – cartant

+0

我很欣赏这一点,但即使从这个例子,我仍然不完全确定要发送给我的请求的URL以及如何通过http调用调用此函数。有什么帮助吗? –

+0

我的理解是这是一个基于项目ID的URL。看看:https://github.com/firebase/functions-samples/tree/master/quickstarts/time-server#try-the-sample – cartant

回答

7

直接从客户端代码调用Cloud Function有两种主要方法。

您可以使用database trigger,当您的Firebase项目的实时数据库中的某个位置发生更改时,该响应会进行响应。

您还可以使用访问HTTP端点时响应的HTTP trigger。对于Web应用程序,您可以使用任何想调用XHR事务的方法。

无论你使用哪一个都取决于你的应用程序的体系结构,并在某种程度上你的偏好。在提供的sample code中有大量的样品和更多。

您可以绝对使用Firebase管理员SDK从您的功能代码中访问您的项目。许多样本都是这样做的。

相关问题