云函数-GetHttpScalable()调用时Android应用程序崩溃

云函数-GetHttpScalable()调用时Android应用程序崩溃,android,firebase-realtime-database,google-cloud-functions,avd,Android,Firebase Realtime Database,Google Cloud Functions,Avd,我尝试从android项目中调用firebase emulator中的函数 我遵循这一点,但当我调用GetHttpScalable时,我的AVD停止,并且在logcat或事件日志中没有看到任何错误 这里的代码比本课程中的代码短,但不太有效 在android Studio中:(java) public类MainActivity扩展了AppCompatActivity{ 私有最终静态字符串TAG=“DebugTest”; 专用数据库参考mRef; 私有FirebaseFunctions MFFunc

我尝试从android项目中调用firebase emulator中的函数

我遵循这一点,但当我调用GetHttpScalable时,我的AVD停止,并且在logcat或事件日志中没有看到任何错误

这里的代码比本课程中的代码短,但不太有效

在android Studio中:(java)

public类MainActivity扩展了AppCompatActivity{
私有最终静态字符串TAG=“DebugTest”;
专用数据库参考mRef;
私有FirebaseFunctions MFFunctions;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮clickBtn=findViewById(R.id.clickBtn);
//警告:firebase模拟器
mRef=FirebaseDatabase
.getInstance(“http://10.0.2.2:9000?ns=nameOfMyApplication-xxxxx”)
.getReference();
//我一按按钮就崩溃了
单击btn.setOnClickListener(新建视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
mFunctions.getHttpScalable(“hello”).call();
}
});
}
}
在index.js中

const functions=require('firebase-functions');
exports.hello=functions.https.onCall((数据、上下文)=>{
返回“你好,世界!”`
})

该函数未在firebase emulator suite的日志中调用。

您忘记初始化
mFunctions
变量,只是声明了它。尝试将下面的代码添加到您已经在进行的firestore初始化旁边,它应该可以工作:

mFunctions = FirebaseFunctions.getInstance();

编辑:

要记录函数的返回,您必须将
onClick
函数更改为以下内容:

public void onClick(View v) {
    System.out.println(mFunctions.getHttpsCallable("hello").call().getValue());                      
}

让我知道这是否解决了问题。

您忘记初始化
mFunctions
变量,您刚刚声明了它。尝试将下面的代码添加到您已经在进行的firestore初始化旁边,它应该可以工作:

mFunctions = FirebaseFunctions.getInstance();

编辑:

要记录函数的返回,您必须将
onClick
函数更改为以下内容:

public void onClick(View v) {
    System.out.println(mFunctions.getHttpsCallable("hello").call().getValue());                      
}

如果这能解决问题,请告诉我。

非常感谢!我的应用程序没有崩溃。但是,我在模拟器中没有看到任何日志。这正常吗?好吧,考虑到你的代码,是的,因为你没有记录你的云函数的返回,你只是调用函数,没有在你的android代码中处理它的返回。我将编辑答案以添加此内容,如果解决了问题,请记住接受并向上投票:)函数的输出是一项任务。我有代码错误,你是正确的,我刚刚修复了代码,现在应该可以工作了。我不能使用getValue。此外,当我在index.js中使用console.log时,日志不可见,因此我认为这是另一个错误。我将创建一个其他的帖子,因为原来的实例问题已经解决了。非常感谢!我的应用程序没有崩溃。但是,我在模拟器中没有看到任何日志。这正常吗?好吧,考虑到你的代码,是的,因为你没有记录你的云函数的返回,你只是调用函数,没有在你的android代码中处理它的返回。我将编辑答案以添加此内容,如果解决了问题,请记住接受并向上投票:)函数的输出是一项任务。我有代码错误,你是正确的,我刚刚修复了代码,现在应该可以工作了。我不能使用getValue。此外,当我在index.js中使用console.log时,日志不可见,因此我认为这是另一个错误。我将创建另一个帖子,因为原来的实例问题已经解决了。