You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:48:04