Java Firebase云函数错误代码和错误消息在Android上始终是内部的

Java Firebase云函数错误代码和错误消息在Android上始终是内部的,java,android,node.js,firebase,google-cloud-functions,Java,Android,Node.js,Firebase,Google Cloud Functions,我正在为我的应用开发一个功能,其中一个用户可以使用云功能向另一个用户发送通知。我的函数和通知按预期工作,但我无法以正确的方式处理错误,因为我的Android代码中总是出现“内部”错误 以下是我的Android代码: public static Task<String> callFirebaseFunction(HashMap<String, Object> data, String funcion){ FirebaseFunctions mFunctions =

我正在为我的应用开发一个功能,其中一个用户可以使用云功能向另一个用户发送通知。我的函数和通知按预期工作,但我无法以正确的方式处理错误,因为我的Android代码中总是出现“内部”错误

以下是我的Android代码:

public static Task<String> callFirebaseFunction(HashMap<String, Object> data, String funcion){

    FirebaseFunctions mFunctions = FirebaseFunctions.getInstance();

    return mFunctions
        .getHttpsCallable(funcion)
        .call(data)
        .continueWith(new Continuation<HttpsCallableResult, String>() {
            @Override
            public String then(@NonNull Task<HttpsCallableResult> task) throws Exception {
                return (String) task.getResult().getData();
            }
        });
}
我在catch段中尝试了不同版本的代码,例如:

.catch( error => {
    res.status(500).send('Error');
    throw new functions.https.HttpsError('invalid-argument', 'Error');
});
我不知道我应该如何制作catch段,我真的需要得到我在节点中抛出的错误(不仅仅是“内部”)。

需要以下格式:

exports.yourFunction = functions.https.onCall((data, context) => {
  // ...
});

它和你正在使用的一个不同的东西。您仍然可以使用Android应用程序的HTTP请求访问它,但如果您想使用
mFunctions.getHttpScalable(function).call(data)
,则需要使用可调用的云函数,我在上面链接了该函数。

它会发送状态标题
HTTP500
,这是一个
内部服务器错误
…可能将
抛出
替换为
返回新函数。https.HttpsError()
?错误代码必须是整数。。。例如
htp400
htp422
。我尝试了返回,结果相同。错误代码必须是字符串,以下是HttpsError的文档。但是,这些字符串用于常量,这些常量映射回常见的HTTP错误代码:…正确的错误代码应该是
未经验证的
。。。这意味着
res.status(401)
。一个人可以通过两种不同的方法通知错误(其中一种方法就足够了,你总是两种方法都有)。
.catch( error => {
    res.status(500).send('Error');
    throw new functions.https.HttpsError('invalid-argument', 'Error');
});
exports.yourFunction = functions.https.onCall((data, context) => {
  // ...
});