firebase Google Cloud Functions,在客户端中返回null的CustomToken?

roejwanj  于 2023-10-22  发布在  Go
关注(0)|答案(1)|浏览(108)

我刚开始构建Chrome扩展程序,并尝试在我的Chrome扩展程序中使用我的网络应用程序中的Firebase身份验证
我想发生的事情:(如果这不是正确的方法,请告诉我)
1.用户在webapp中登录/注册
1.在注册时,调用我的函数到createCustomToken并将令牌返回给客户端
1.将令牌保存到Chrome存储中,以便我的扩展程序可以对用户进行身份验证。
问题是:
当我调用该函数时,我在控制台中返回的所有内容都是{data: null},而不是customToken。
Firestore功能代码

const {logger} = require("firebase-functions");
const {onRequest} = require("firebase-functions/v2/https");
const {onCall, HttpsError} = require("firebase-functions/v2/https");
const {initializeApp} = require("firebase-admin/app");
const {getAuth} = require("firebase-admin/auth");
const {getFirestore} = require("firebase-admin/firestore");

initializeApp();

exports.createToken = onCall((request) => {

  const uid = request.auth.uid;

  getAuth().createCustomToken(uid).then((customToken) => {
    return customToken
  })
  .catch((error) => {
    return error;
  });
  
});

Webapp代码(Next.js)

// the code below is currently running onClick

const addMessage = () => {
  const createToken = httpsCallable(functions, 'createToken');
  createToken().then(result => {
    console.log(result); >> the result in console is "data: null"
  });
}
puruo6ea

puruo6ea1#

你的函数没有返回任何东西给调用者。您需要在顶层使用return语句来返回EQUAC调用链的结果。

return getAuth().createCustomToken(uid).then((customToken) => {
    return customToken
  })
  .catch((error) => {
    return error;
  });

相关问题