首页 > 解决方案 > 获取“firebase.functions(app)”参数需要一个 FirebaseApp 实例或在 React-Native Firebase 中未定义

问题描述

我在 GoogleCloud 中触发了一个 httpscallable 函数,但收到了这个错误,我在文档中的任何地方都找不到它是什么:

“firebase.functions(app)” arg 需要 FirebaseApp 实例或未定义。

确保提供的 arg 是 Firebase 应用实例;或者没有参数来使用 默认的 Firebase app

这是我在 RN 应用程序中的代码:

   import { firebase } from '@react-native-firebase/functions'; 
   ...
    try {
        await firebase.functions('europe-west1').httpsCallable('createUserTest')();
    }
    catch (httpsError) {
        console.log(httpsError.message);
    }

还有我的云功能:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.createUserTest = functions.region('europe-west1').https.onCall(async (data, context) => {
    try {
        const callerUid = context.auth.uid;
        const callerUserRecord = await admin.auth().getUser(callerUid);
        return { result: callerUserRecord.customClaims };
    } catch (error) {
        return { error: error };
    }
});

我将此函数用于测试目的,只是为了查看是否可以接收到当前用户自定义声明,但是,它返回了该错误。

标签: firebasereact-nativegoogle-cloud-firestoregoogle-cloud-functionsreact-native-firebase

解决方案


您似乎没有正确使用提供的客户端 API。我建议查看文档,尤其是示例 3。您需要这样做:

const defaultApp = firebase.app();
const functionsForRegion = defaultApp.functions('europe-west1');
await functionsForRegion.httpsCallable("createUserTest")()

推荐阅读