获取“ firebase.functions(app)” arg期望使用FirebaseApp实例或在React-Native Firebase中未定义

时间:2020-04-22 18:43:41

标签: firebase react-native google-cloud-firestore google-cloud-functions react-native-firebase

我在GoogleCloud中触发了一个httpscallable函数,但收到此错误,我在文档中找不到任何地方:

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

确保提供的arg是Firebase应用程序实例;或没有可用的参数 默认的Firebase应用

这是我在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 };
    }
});

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

1 个答案:

答案 0 :(得分:1)

您似乎未正确使用提供的客户端API。我建议您回顾一下documentation,尤其是示例3。您将改为这样做:

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