Java 如何从firebase实时数据库中获取字符串数组
我对android应用程序开发和firebase也是新手。我从sample节点获取数据,并获得如下所示的DataSnapshot值Java 如何从firebase实时数据库中获取字符串数组,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我对android应用程序开发和firebase也是新手。我从sample节点获取数据,并获得如下所示的DataSnapshot值 {size=[小、大、特大],type=[类型1、类型2],color=[红、绿、蓝],category=[T恤、牛仔裤、毛衣]} 如果您需要帮助,任何建议都将不胜感激 要单独检索值,请使用如下代码: databaseReference = FirebaseDatabase.getInstance().getReference("/sample"); datab
{size=[小、大、特大],type=[类型1、类型2],color=[红、绿、蓝],category=[T恤、牛仔裤、毛衣]}
如果您需要帮助,任何建议都将不胜感激
要单独检索值,请使用如下代码:
databaseReference = FirebaseDatabase.getInstance().getReference("/sample");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.d(TAG, "onDataChange: dataSnapshot "+dataSnapshot.getValue());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
databaseReference.child(“category”).addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(int i=0;i类似的内容:
databaseReference = FirebaseDatabase.getInstance().getReference("/sample");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.d(TAG, "onDataChange: dataSnapshot "+dataSnapshot.getValue());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
不同之处在于,在我的回答中,我循环使用dataSnapshot.getChildren()
来获取每个示例快照。sampleSnapshot.getValue()
调用应该返回一个列表Firebase对数组没有本机支持。如果存储数组,它实际上会被存储为一个“对象”使用整数作为键名
//我们寄这个
databaseReference = FirebaseDatabase.getInstance().getReference("/sample");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot sampleSnapshot: dataSnapshot.getChildren()) {
Log.d(TAG, "onDataChange: sampleSnapshot "+sampleSnapshot.getKey()+" = "+sampleSnapshot.getValue());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
throw databaseError.toException(); // don't ignore errors
}
});
//Firebase存储这个
['hello', 'world']
//试试这个
{0: 'hello', 1: 'world'}
@覆盖
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
youNameArray=newarraylist();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
String data=snapshot.getValue(String.class);
添加(数据);
}
Log.v(“asdf”,“第一个数据:+youNameArray.get(0));
}
您想如何检索这些值?您想从数据库中获取哪些值?我想在android的不同微调器上设置每个字符串数组。嘿@ninjajack,如果您觉得我的答案有用,请单击旁边的V-type按钮将其标记为正确,这有助于堆栈溢出未来的读者,我将不胜感激。加油njajax,你能试试上面的代码并告诉你在类目列表中存储了什么吗?它的工作我做了比特改变类。添加(DasnPasPop.Stand(Stras.ValueOf(i))。GETValk(String。class));很好,你可以使用类似的代码来解决问题的其他部分。但是,如果我想同时获取所有字符串数组,该怎么办呢?非常感谢您的帮助:D@ninjajack啊,我的字符串不好。valueOf(i)
,太好了,你发现了:)
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference refence = database.getReference();
refence.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot snapshot) {
// TODO Auto-generated method stub
ArrayList array= new ArrayList<>();
for (DataSnapshot ds : snapshot.getChildren()){
String data = ds.getValue().toString();
array.add(data);
}
System.out.println(array);
}
@Override
public void onCancelled(DatabaseError error) {
// TODO Auto-generated method stub
}
});
String data = ds.getValue().toString();