从Android继续在Firebase数据库的现有数组中插入新数据

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

我刚刚开始学习android studio,并且我正在基于位置的项目中将位置信息插入Firebase。我遵循了youtube [https://www.youtube.com/watch?v=CwxdfamaCrk]的教程,但是在视频中仅显示了来自代码的插入数据,如下所示;

infectedArea = new ArrayList<>();
    infectedArea.add(new LatLng(2.2258162, 102.4497224));
    infectedArea.add(new LatLng(2.2252313, 102.4563797));
    infectedArea.add(new LatLng(2.2261818, 102.4551067));
    infectedArea.add(new LatLng(2.275295,102.444035));

    FirebaseDatabase.getInstance()
            .getReference("InfectedArea")
            .child("Location")
            .setValue(infectedArea)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    Toast.makeText(MapsActivity.this, "Updated!", Toast.LENGTH_SHORT).show();
                }
            }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(MapsActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });

下面是我的Firebase的快照。

enter image description here

从索引中插入索引为0、1、2和3的那个。现在,我尝试继续插入数据,但是生成了随机密钥,并且无法创建新的地理围栏。无论如何,是否可以继续使用硬键插入数据?

我曾考虑删除硬键,仅使用生成的键,但后来我不知道如何更改代码以创建多个地理围栏。

java android firebase firebase-realtime-database geofencing
1个回答
0
投票

它将在HashMap上存储,因此您可以getkey获取随机密钥,并且您可以随机插入数据

DatabaseReference database = FirebaseDatabase.getInstance().getReference("InfectedArea").child("Location");
    database_course.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            for(DataSnapshot ds :dataSnapshot.getChildren()){
               String key = ds.getKey();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.