如何将记录添加到Firebase数据库? [重复]

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

这个问题在这里已有答案:

在我的应用程序中,我可以从我的相机中截取屏幕截图。然后,我将图像上传到Firebase存储并获取下载链接。现在,我想将此链接添加到我的数据库中。我可以通过以下代码执行此操作:

fun storeImageUrlToFBDatabase(userId: String, cameraName: String, imageUrl: String) {
    val map = mapOf(cameraName to imageUrl)
    val ref = getFBDatabaseReference().getReference("users/$userId/images")
    ref.setValue(map)
        .addOnSuccessListener {
            Logger.d("$FB_DATABASE_TAG, Write was successful, $it")
        }
        .addOnFailureListener {
            Logger.e("$FB_DATABASE_TAG, Write failed: $it")
        }
}

这就是Firebase所展示的:enter image description here

然而,问题是images下的当前项目将被我推进的新项目所取代。我的期望是这样的:

  • 摄像头串流 用户 用户X AUTH 令牌:“xxx” userId:“xxxx” 图片 image1:“url1” image2:“url2” image3:“url3” image4:“url4”

但是,在images下每次推送/插入后我得到的只有一个项目/记录。问题是什么?谢谢。

android firebase firebase-realtime-database kotlin firebase-storage
1个回答
0
投票

您需要使用键值来存储新链接。这可以通过两种方式完成:

  1. 跟踪数据库中的当前图像序列,然后按下一个值,如:

select ref = getFBDatabaseReference()。getReference(“users / $ userId / images”);

//you need to find next xth image somehow

ref.child('imagex').setValue("map");
  1. 只需将链接推送到DB生成的随机密钥:

select ref = getFBDatabaseReference()。getReference(“users / $ userId / images”);

val newRef = ref.push();
newRef.setValue("map");
© www.soinside.com 2019 - 2024. All rights reserved.