java - 如何在不获取唯一键的情况下从 firebase 检索值
问题描述
我正在尝试从 Android 中的 Firebase 检索 url。但是,我的问题是如果不获取孩子的唯一键,我就无法检索 url。
我试图检索的值如下:
下面是我用来从 firebase 检索数据的代码。
final FirebaseDatabase database = FirebaseDatabase.getInstance();
myRef = database.getReference().child("LoadItems");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot child : dataSnapshot.getChildren() ){
String key;
key = child.getKey();
Log.d(TAG, "onDataChange: " + key);
Log.d(TAG, "onDataChange: " + child.getValue());
}
}
@Override
public void onCancelled(DatabaseError databaseError) { }
});
所以我想要得到的是单独的 url。
解决方案
无需知道任何密钥即可获取该 URL。所以请使用以下代码行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference shoesRef = rootRef.child("LoadItems").child("Shoes");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String url = ds.getValue(String.class);
Log.d(TAG, url);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
shoesRef.addListenerForSingleValueEvent(valueEventListener);
推荐阅读
- css - 仅将 CSS 应用于一个网格
- python - 为什么 linecache 会检查缓存中元组元素的长度?
- html - Bootstrap:在小显示中一个又一个被推的列
- micronaut - 错误:意外错误:非法名称.$HelloControllerDefinition
- c - 尽管没有内容,for循环是否有可能使代码崩溃
- java - JNA Native.loadLibrary 生成内存故障:__memmove_avx_unaligned_erms
- hyperledger-fabric - 升级 Hyperledger Fabric 业务网络
- r - R:删除data.frames列表中的行
- javascript - AJAX 不发送变量写入 txt
- ios - 如何为 Cordova 插件使用本地 CocoaPods 依赖项?