为什么 Firestore Cloud Function 返回错误的请求响应?

雷米·巴托洛塔

我正在关注 firebase 的 youtube 频道上关于使用自定义声明进行授权的教程在尝试调用云函数时,我不断收到来自 firebase 服务器的“错误请求:无效参数”响应。该函数甚至从未被调用。我猜测data结构不正确(无效参数),但不知道为什么。有人可以解释一下吗?

云功能:

exports.addAdmin = functions.https.onCall( (data: any, context: any) => {
  const email = data.email;
  return grantAdminRole(email).then(() => {
    return{
      result: 'Admin role has been assigned successfully'
    }
  }).catch( err => {
    return{
      error: err
    }
  })
})

async function grantAdminRole(email: string): Promise<void> {
  const user = await admin.auth().getUserByEmail(email);
  if( user.customClaims && user.customClaims.admin === true ) {
    return;
  } else {
    return admin.auth().setCustomUserClaims(user.uid, {
      admin: true
    })
  }
};

客户:

endpoint = 'https://[MY_FUNCTION_URL]';
userEmail = '[email protected]';

constructor( private http: HttpClient ) {}

grantAdminRole() {
  this.http.post(this.endpoint, this.userEmail ).subscribe( res => {
    console.log(res);
  });
}
弗兰克·范·普费伦

您的服务器端实现了一个可调用的云函数,如下所示:

functions.https.onCall

但是您的客户端然后尝试将其作为HTTP 云函数调用

this.http.post(this.endpoint, ...

虽然可调用函数建立在 HTTP 函数之上,但它们不能以相同的方式调用。您应该使用客户端函数 SDK来调用可调用的 Cloud Function,或者实现有线协议

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从 Cloud Function 连接到 Cloud Firestore 的样板代码是什么?

为什么Flutter中传递的数据返回null?我使用 Cloud Firestore 作为我的数据存储

为什么我会收到此 Cloud Firestore 函数错误?

错误:无实体可更新:应用-Firestore Cloud Function

Firestore中的Firebase Cloud Function错误:不是普通的JavaScript对象

如何从Cloud Function访问Cloud Firestore?

Cloud Function的Cloud Firestore触发器

为什么此批交易在Cloud Firestore中失败?

为什么未在Cloud Firestore中按顺序添加文档?

为什么Cloud Firestore更新这么多?

为什么Cloud Firestore的where功能不起作用

为什么通过Android HTTP请求触发器多次调用此Cloud Function?

Firebase Cloud Firestore 不返回数据或错误

Google Cloud Function-为什么存储桶总是返回空文件数组?

为什么此查询从Firestore返回零

Flutter Cloud Firestore 返回结果

Cloud Function在Firestore上写错时间

Firestore Cloud Function空集合

如何使用 Cloud Function 获取 Firestore 集合?

Firestore Cloud Function Query 在数据库查询后返回值?

为什么从Firebase身份验证传递ID令牌时,此经过CORS身份验证的Google Cloud Function为什么返回403?

Cloud Firestore触发器,用于Cloud Function调用Composer

Firebase Cloud Function为什么执行已定义的Promise

为什么我的 Firestore 请求一无所获?

为什么不删除Cloud Firestore数据库中的文档?

为什么 Cloud Firestore 集合至少需要一个文档?

为什么在 Firestore 中使用安全规则时 Cloud Functions 不会停止写入?

为什么即使在完成配置后 cloud_firestore 也无法在 FlutterFire 中工作?

为什么我的节点脚本在Cloud Firestore查询之后等待60秒才能终止?