Android Kotlin:EditText数据无法添加至Firestore问题求助
Firestore数据添加失败问题排查与修复
核心问题:Firestore实例未初始化
你的代码中仅声明了private lateinit var db: FirebaseFirestore,但未对该变量进行初始化,这是导致数据添加操作触发失败回调的直接原因。
修复代码
在onCreate方法中添加Firestore实例初始化代码:
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // 初始化Firestore实例(关键缺失代码) db = FirebaseFirestore.getInstance() editTextName = binding.nameEdtTxt editTextNumber = binding.numberEdtTxt // 后续点击事件代码保持不变... }
其他排查方向(若初始化后仍失败)
- 检查Firebase配置文件:确认
google-services.json已正确放置在app模块根目录,且配置信息与你的Firebase项目完全匹配。 - 调整Firestore安全规则:默认规则在非认证状态下会限制写入,测试阶段可临时设置为开放规则(上线前务必修改为安全规则):
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } } - 验证依赖完整性:确保app级
build.gradle中已添加Firestore相关依赖:implementation 'com.google.firebase:firebase-firestore-ktx:24.10.0' implementation 'com.google.firebase:firebase-core-ktx:21.1.1' - 打印具体错误信息:修改失败回调,输出异常详情以便精准定位问题:
.addOnFailureListener { exception -> Toast.makeText(this, "失败原因: ${exception.message}", Toast.LENGTH_LONG).show() Log.e("FirestoreError", "数据添加失败", exception) }
内容的提问来源于stack exchange,提问作者GHULAM JILANI JANJUA
相关产品推荐
相关产品推荐

