gpt4 book ai didi

firebase - 在Kotlin中检查Firebase Child值

转载 作者:行者123 更新时间:2023-12-02 13:34:54 24 4
gpt4 key购买 nike

我正在尝试设置一个数据库应用程序,但是有点卡住了。

我希望每个人都可以将数据写入数据库,这是..如果一条信息已经存在,则数据不应被覆盖。

例:

  • 人A添加:cd-title + BandA
  • 数据库将此信息保存在两个 child 以下
    personA private --->
    Cd-title, Band A

    Database --->
    Cd-title, Band A
  • 人B添加:cd-title + BandA
    personB private --->
    Cd-title, Band A

    Database--->
    // error child already exists

  • 明智的代码应该像
    get value. child
    if !=null
    error child already exists
    if = null
    info succesfully saved

    val ref = FirebaseDatabase.getInstance().getReference("/Wishlist/$uid/$album")

    val Vinyl_piece = Albumadd(aAlbum, bBand, nName, gGenre, bBuildyear, SideA1, SideA2, SideA3, SideA4, SideA5)

    ref.setValue(Vinyl_piece)

    最佳答案

    如果要基于同一位置上的现有值(或缺少该值)将值写入数据库,则需要use a Firebase Database transaction

    在您的情况下,看起来像:

    postRef.runTransaction(object : Transaction.Handler {
    override fun doTransaction(mutableData: MutableData): Transaction.Result {
    if (mutableData.value == null) {
    // Set value and report transaction success
    mutableData.value = Vinyl_piece
    }
    return Transaction.success(mutableData)
    }

    override fun onComplete(
    databaseError: DatabaseError?,
    b: Boolean,
    dataSnapshot: DataSnapshot?
    ) {
    // Transaction completed
    Log.d(TAG, "runTransaction:onComplete:" + databaseError!!)
    }
    })

    关于firebase - 在Kotlin中检查Firebase Child值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58382149/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com