You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio向Firebase添加数据时遭遇@Override、getException与@NonNull相关错误,求正确代码示例

修正Firebase数据添加代码的问题

我帮你梳理下代码里的核心问题,然后给你修正后的完整代码,解决注解不识别、方法无法调用以及逻辑错误的问题:

问题分析

  • 语法结构错误:你错误调用了addOnClickListener(这是UI控件的点击监听方法),Firebase数据库写入应该用setValue()后绑定addOnCompleteListener;同时你的匿名内部类写法有语法错误,括号和分号的位置完全不对。
  • 注解/方法未识别:缺少必要的导入包,比如@NonNullTaskOnCompleteListener对应的Firebase和AndroidX注解包,IDE自然无法识别这些内容。
  • 逻辑颠倒:你当前的判断是「任务失败时显示成功提示」,这完全搞反了业务逻辑。
  • 冗余代码Object setValue;这类无意义的代码可以直接删除。

修正后的完整代码

首先确保你导入了这些必要的包:

import androidx.annotation.NonNull;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import android.widget.Toast;

然后是修正后的核心代码片段(假设是在某个点击事件或方法内):

// 初始化Firebase数据库引用
DatabaseReference budgetRef = FirebaseDatabase.getInstance().getReference("budgets");

// 构造要写入的数据对象
Data data = new Data(budgetItem, date, id, null, Integer.parseInt(budgetAmount), months);

// 写入数据到Firebase并监听操作完成状态
budgetRef.child(id).setValue(data).addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        loader.dismiss();
        if (task.isSuccessful()) {
            // 任务成功:显示成功提示并关闭弹窗
            Toast.makeText(BudgetActivity.this, "Budget item added successfully", Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        } else {
            // 任务失败:显示具体异常信息
            if (task.getException() != null) {
                Toast.makeText(BudgetActivity.this, "Error: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
            }
        }
    }
});

额外提示

  1. 确保你的Data类符合Firebase序列化要求:类是public的,有默认无参构造函数,所有字段要么是public,要么有对应的getter/setter方法,否则Firebase无法正常读写数据。
  2. 如果还是提示注解不识别,检查你的Android项目是否引入了AndroidX注解依赖(在Module级别的build.gradle里添加:implementation 'androidx.annotation:annotation:1.6.0')。

内容的提问来源于stack exchange,提问作者Sabella

火山引擎 最新活动