Java 从Firebase实时数据库获取url值
我在firebase实时数据库中有上述格式 我需要在arraylist中获取数据Java 从Firebase实时数据库获取url值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我在firebase实时数据库中有上述格式 我需要在arraylist中获取数据 public class EmojiView extends AppCompatActivity { FirebaseUser firebaseUser; DatabaseReference reference; ArrayList<String> images = new ArrayList<>(); private void getImagesfromDB() { fir
public class EmojiView extends AppCompatActivity {
FirebaseUser firebaseUser;
DatabaseReference reference;
ArrayList<String> images = new ArrayList<>();
private void getImagesfromDB() {
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference("stickers");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
String data = snapshot.getValue(String.class);
images.add(data);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_emoji_view);
getImagesfromDB();
}
}
public类EmojiView扩展了appcompative活动{
FirebaseUser FirebaseUser;
数据库参考;
ArrayList images=新的ArrayList();
私有void getImagesfromDB(){
firebaseUser=FirebaseAuth.getInstance().getCurrentUser();
reference=FirebaseDatabase.getInstance().getReference(“贴纸”);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot快照:DataSnapshot.getChildren()){
String data=snapshot.getValue(String.class);
图像。添加(数据);
}
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u emoji\u视图);
getImagesfromDB();
}
}
我在OnDataChangemethod中获得数据变量中的URL,但我无法将这些值分配给images arraylist
public class EmojiView extends AppCompatActivity {
FirebaseUser firebaseUser;
DatabaseReference reference;
ArrayList<String> images = new ArrayList<>();
private void getImagesfromDB() {
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference("stickers");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
String data = snapshot.getValue(String.class);
images.add(data);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_emoji_view);
getImagesfromDB();
}
}
更改对此的引用:
reference = FirebaseDatabase.getInstance().getReference("stickers").getChildren();
然后以这种方式循环浏览快照(应该是“贴纸”的子项):
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot item : snapshot){
stickers.add(item.getValue(String.class));
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
arrayList有什么问题?它根本就没有人居住吗?是否正在填充,但数据错误?你需要解释到底是什么问题。我没有得到数据,而且我希望它被分配到ArrayList[]URL声明“我没有得到数据”你是如何确定的?请注意,除了您共享的内容之外,我们看不到任何内容,因此最好确保问题中的信息非常明确地显示您获得的输出以及您期望的输出。还可以看到我更新了代码首先,停止忽略错误。使用Log.d(标记,error.getMessage())代码>。你有没有在航海日志上打印出来?你怎么查到的?