Android Studio中Firebase数据库连接异常,数据上传未显示求助
问题分析与解决方案
核心问题
你遇到的两个关键问题:
- 数据库URL使用错误,未匹配云端的欧洲区域实例
- 数据库引用路径多添加了冗余节点,导致数据存储位置和你预期不一致
具体修复步骤
1. 替换为正确的数据库URL
错误提示里已经给出了正确的数据库URL:https://destination-e6a01-default-rtdb.europe-west1.firebasedatabase.app,你代码里用的https://Destination.firebaseio.com/是旧的默认区域URL,必须替换。
2. 修正数据库引用路径
你的代码中database.getReference("destination-e6a01-default-rtdb")是多余的——因为你传入的数据库URL已经指向了这个实例的根节点,再添加这个参数会导致数据被存储到根节点下的destination-e6a01-default-rtdb子节点里,而你在控制台查看的是根节点,所以看不到数据。
3. 更新配置文件
修改数据库区域后,务必从Firebase控制台重新下载最新的google-services.json文件,替换项目app目录下的旧文件,确保本地配置和云端完全同步。
修改后的完整代码
// Initialize Firebase in your app FirebaseApp.initializeApp(this); // 使用错误提示里的正确数据库URL FirebaseDatabase database = FirebaseDatabase.getInstance("https://destination-e6a01-default-rtdb.europe-west1.firebasedatabase.app"); Log.d("TAG", "Database URL: " + database.getReference().toString()); // 直接获取根节点引用,无需额外添加实例名 DatabaseReference myRef = database.getReference(); Spinner categorySpinner = findViewById(R.id.spinner_categories); String category = categorySpinner.getSelectedItem().toString(); double latitude = 52.519345; double longitude = -6.610428; VanCameraLocations speedvancameralocations = new VanCameraLocations(latitude, longitude, category); myRef.push().setValue(speedvancameralocations);
验证方法
运行修改后的代码后,查看Logcat输出的Database URL,确认和错误提示里的URL完全一致。此时数据会被直接推送到数据库根节点,你在Firebase控制台就能看到新增的数据了。
内容的提问来源于stack exchange,提问作者Donny
相关产品推荐
相关产品推荐

