检查Kotlin中的Firebase子级值

问题描述 投票:0回答:1

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

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

示例:

A人添加:cd-title + BandA

数据库将将此信息保存在两个孩子以下

personA私人--->CD标题,乐队A

数据库--->

CD标题,A组

B人添加:cd-title + BandA

personB私人--->CD标题,乐队A

数据库--->

//错误子代已经存在

codewise应该像

获取价值。儿童如果!= null错误的孩子已经存在如果= null信息成功保存

   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)
firebase kotlin firebase-realtime-database
1个回答
0
投票

如果要基于同一位置上的现有值(或缺少该值)将值写入数据库,则需要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!!)
    }
})
© www.soinside.com 2019 - 2024. All rights reserved.