我需要从firebase获取信息并将其存储在字符串中。
我如何用Java做到这一点?
我想得到:
48.8287302和2.3649081
发件人
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS92ZjBaZi5wbmcifQ==” alt =“在此处输入图像描述”>
您是否看过Firebase文档?很清楚here。
您首先需要做几件事:
现在是实际代码,您需要在数据库引用中获取有关数据存储位置的引用。一旦有了它,就必须在数据库中提供字符串的路径。这是一个例子
private void getData(){
DatabaseReference db = mDatabase.getChild("customer-requests").getChild("M7-J...").getChild("I");
db.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
List<String> strs = new ArrayList<>();
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
strs.add(snapshot.getValue());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
请确保将上面的getChild()
调用更改为实际名称。
调用此方法以读取所需的值,我假设这些值是double
private void readValues(){
//the reference
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("customer_requests");
//listener
ValueEventListener listener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
//I assume the values are doubles in the database (if floats use Float.class)
//get the values
double value0_float = ds.child("I").child("0").getValue(Double.class);
double value1_float = ds.child("I").child("1").getValue(Double.class);
//convert to strings
String value0 = String.valueOf(value0_float);
String value1 = String.valueOf(value1_float);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
//attach the listener
ref.addValueEventListener(listener);
}