Android Studio开发时Firebase数据库无法接收Android端上传数据求助
问题排查与解决方案
1. 核心代码逻辑错误
当前获取输入框内容的时机错误:在onCreate生命周期中直接读取EditText的内容,此时页面刚完成初始化,用户还未在输入框中填写任何内容,你拿到的始终是空字符串,就算后续用户输入了内容,点击按钮时用的还是之前读取的空值。
修复方案:把读取输入框内容的逻辑移到按钮点击事件内部,同时添加上传结果监听定位错误:
public class UsersDataBase extends AppCompatActivity { EditText EditTextBlue, EditTextRed, EditTextGreen; Button save; DatabaseReference databaseReference; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cadastrodeuser2); databaseReference = FirebaseDatabase.getInstance().getReference("users"); EditTextBlue = findViewById(R.id.campoblue); EditTextRed = findViewById(R.id.campored); EditTextGreen = findViewById(R.id.campogreen); save = findViewById(R.id.save); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 点击按钮时再读取用户输入的内容 String blue = EditTextBlue.getText().toString().trim(); String red = EditTextRed.getText().toString().trim(); String green = EditTextGreen.getText().toString().trim(); // 非空校验避免空数据上传 if(blue.isEmpty() || red.isEmpty() || green.isEmpty()){ Toast.makeText(UsersDataBase.this, "请填写完整内容", Toast.LENGTH_SHORT).show(); return; } String id = databaseReference.push().getKey(); user2 user2 = new user2(blue, red, green); // 添加上传结果监听,可直接查看失败原因 databaseReference.child(id).setValue(user2) .addOnCompleteListener(task -> { if(task.isSuccessful()){ Toast.makeText(UsersDataBase.this, "上传成功", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(UsersDataBase.this, "上传失败:"+task.getException().getMessage(), Toast.LENGTH_SHORT).show(); Log.e("FirebaseUpload", "上传失败", task.getException()); } }); } }); } }
2. 其他可能的配置问题
- 检查Firebase实时数据库的权限规则,测试阶段可以先将规则改为允许读写验证功能是否正常(上线前请修改为安全规则):
{ "rules": { ".read": true, ".write": true } }
- 确认
user2实体类符合Firebase序列化要求:包含公共无参构造方法、所有需要序列化的字段都有对应的getter方法,或是被public修饰。 - 确认
google-services.json文件已经正确放置在项目的app目录下,文件内的项目配置和Firebase控制台的配置完全一致。 - 确认设备网络正常,你同时依赖了Firebase实时数据库和Firestore两个数据库服务,不要混淆两个服务的操作和控制台配置。
内容的提问来源于stack exchange,提问作者Joseph Smith
相关产品推荐
相关产品推荐

