firebase - 我可以将 postman 用于在Firebase中用作函数的onCall方法吗?

标签 firebase google-cloud-functions postman

因此,我做了一个非常简单的方法,我想使用自定义 token 登录到Firebase。截至目前,它只是

export const createCustomToken = functions.region('europe-west1').https.onCall(async (data, context) => {

    try {
        const firebaseJWT = await authenticationProvider.createCustomToken()
        console.log(firebaseJWT.toString())
    } catch (err) {
        throw new functions.https.HttpsError('internal', 'Something went wrong ');
    }
});

authenticationProvider看起来像这样:
return firebase.admin.auth().createCustomToken("Some uid")
       .then((token) => {
           console.log("Did create custom token.");
           return token;
       }).catch((error) => {
           console.log("Error creating custom token:" + error);
           throw new firebase.functions.https.HttpsError('internal', 'createCustomToken(uid) has failed for some reason');
       }) 
}

我尝试使用shell方法在本地运行它,在命令提示符下执行以下行:firebase functions:shell,然后调用authenticationController.createCustomToken({})

这只是给我这个回应:
创建自定义 token 时出错:错误:无法确定服务帐户。确保使用服务帐户凭据初始化SDK。或者,指定一个具有iam.serviceAccounts.signBlob权限的服务帐户。原始错误:错误:发出请求时出错:getaddrinfo ENOTFOUND元数据元数据:80。错误代码:ENOTFOUND

服务帐户似乎具有适当的角色,所以我认为这不是问题。

因此,我想知道是否可以通过某种方式从 postman 那里叫我createCustomToken()函数,并查看响应,以便我可以正确地测试代码,而无需应用程序实现onCall方法来查看结果?

还是我缺少通过firebase functions:shell命令运行它的功能?

最佳答案

您可以使用请求 header 在Postman上测试Firebase函数,如官方文档here中所述

首先,您必须在项目的根文件夹中使用以下命令在本地提供功能

firebase serve

您也可以查看官方文档如何在本地提供功能here

在运行以上命令时,您将获得函数的http链接。像这样
http://localhost:5000/{YOUR_FIREBASE_PROJECT_NAME}/us-central1/myFunction

将该链接用于Postman中的POST请求。在Postman的“正文”部分中,从下拉列表中选择“原始”,然后选择“JSON(application / json)”,然后在正文部分中键入以下正文示例
{
    "data": {}
}

如文档here所述,需要在主体中添加带有“data”参数的json对象。检查以下屏幕截图以供引用

Screenshot displaying sample body for requesting onCall method in Postman

现在,您可以发送请求以获取功能的响应。希望能帮助到你 :)

关于firebase - 我可以将 postman 用于在Firebase中用作函数的onCall方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823116/

相关文章:

Android Firebase 查询 StartAt()

ios - 在 Firebase iOS 中刷新身份验证 token 时出错

javascript - firebase.auth.signInWithCustomToken 不是函数node.js

ios - 迁移到 firebase v6 后找不到 RNFirebaseNotifications.h。 react native

javascript - 如何为 React Native Firebase 设置函数区域

python - AWS Lambda 中的 get_remaining_time_in_millis 的替代方案可用于 Google Cloud Function?

node.js - 从 Cloud Functions Realtime Database 中的子引用获取父 Node 的原始值 "val()"数据

android - Webservice 在 Android Retrofit 中不工作,但在 Postman 和 Swift/iOS 中工作,获得 401 Unauthorized

即使失败, postman 测试也总是通过

javascript - SequelizeDatabaseError : Sending the error in the response