我正在尝试从Firebase检索数据,但没有任何消息。该应用程序已成功编写,但当它尝试获取信息时,它只显示一个空白屏幕。我的Firebase结构为Saica>Calendar>key>Data
我附上了我的Firebase结构图片
这是我的代码:
public class Admin_ViewEvent extends AppCompatActivity {
private ListView mListView;
private ArrayList<String> mMeetings = new ArrayList<>();
private Firebase mRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin__view_event);
mRef = new Firebase("https://saica-sgb-77a4f.firebaseio.com/Meetings");
mListView = (ListView) findViewById(R.id.ListView);
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mMeetings);
mListView.setAdapter(arrayAdapter);
mRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value = dataSnapshot.getValue(String.class);
mMeetings.add(value);
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
答案 0 :(得分:0)
根据旧的屏幕截图参考,您可以从父日历节点获取 date 和 description 。您可以使用以下代码段从会议节点获取详细信息。
FirebaseDatabase.getInstance().getReference().child("Calendar").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot childSnapShot : dataSnapshot.getChildren()) {
String date = (String) childSnapShot.child("date").getValue();
String desc = (String) childSnapShot.child("description").getValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 1 :(得分:0)
基于行
%i
看起来你使用的是错误的firebase sdk。它可能是旧版本或java服务器sdk,但绝对不是最近的android sdk。
检查mRef = new Firebase("https://saica-sgb-77a4f.firebaseio.com/Meetings");
:你应该有这样的一行:
build.gradle
连接到您的数据库并获取参考:
compile "com.google.firebase:firebase-database:10.0.0"
从firebase控制台下载到google-services.json
文件夹。像这样创建数据库引用:
app/