如何在Fragment中向Firebase Firestore的receipts集合添加指定文档
Fragment中实现Firestore receipts集合文档写入功能
实现逻辑说明
- 首先获取FirebaseFirestore实例
- 调用
collection("receipts").document()生成带有唯一ID的空文档引用,拿到自动生成的文档ID - 构造包含
id、from、value、image四个字段的数据集 - 将数据集写入到刚生成的文档引用中,通过回调监听写入结果
完整代码示例(Kotlin)
import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import com.google.firebase.firestore.FirebaseFirestore class ReceiptUploadFragment : Fragment() { // 初始化Firestore实例 private val db = FirebaseFirestore.getInstance() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // 替换为你自己的Fragment布局文件 return inflater.inflate(R.layout.fragment_receipt_upload, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // 可在点击事件等业务触发位置调用写入方法,参数替换为实际业务数据 uploadReceipt( from = "付款方名称", value = 199.5, image = "实际票据图片存储地址" ) } private fun uploadReceipt(from: String, value: Double, image: String) { // 生成带唯一ID的文档引用 val receiptRef = db.collection("receipts").document() // 拿到自动生成的唯一ID val receiptId = receiptRef.id // 构造要写入的文档数据 val receiptData = hashMapOf( "id" to receiptId, "from" to from, "value" to value, "image" to image ) // 执行写入操作 receiptRef.set(receiptData) .addOnSuccessListener { // 写入成功后的业务处理,例如弹窗提示、页面跳转等 } .addOnFailureListener { e -> // 写入失败后的异常处理,例如错误提示、日志打印等 } } }
注意事项
- 确保项目已正确引入Firebase Firestore依赖,且已完成
google-services.json配置 - 可根据实际业务需求调整字段类型、新增拓展字段
- 需要提前在Firebase控制台配置Firestore数据库写入权限,避免权限不足导致写入失败
内容的提问来源于stack exchange,提问作者MaksChojniak1
相关产品推荐
相关产品推荐

