我刚刚开始学习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的快照。
从索引中插入索引为0、1、2和3的那个。现在,我尝试继续插入数据,但是生成了随机密钥,并且无法创建新的地理围栏。无论如何,是否可以继续使用硬键插入数据?
我曾考虑删除硬键,仅使用生成的键,但后来我不知道如何更改代码以创建多个地理围栏。
它将在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) {
}
});