Mas*_*ike 23 java events android listener firebase
我正在尝试使用Java API从onCreate()事件中的Android应用程序中的Firebase数据库中读取数据.换句话说,我正在努力做最简单的阅读,相当于......
ref.once('value', function(snapshot) {
});
Run Code Online (Sandbox Code Playgroud)
...在Javascript API中.我正在尝试使用addEventListenerForSingleValueEvent()方法,但它似乎要我覆盖onDataChange()方法,这不是我想要的.无论数据库事件如何,我都想在程序执行到达此行时获取数据.这是我的(未完成的)功能....
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.poll_table);
// First get the table layout
tbl = (TableLayout) findViewById(R.id.pollsTable);
// Now let's create the header
TableRow tHead = createPollsTableHeader();
// Add header to tableLayout
tbl.addView(tHead, new TableLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
// Add all polls in ref as rows
polls.addListenerForSingleValueEvent(new ValueEventListener() {
// DON'T KNOW WHAT TO DO HERE
}
}
Run Code Online (Sandbox Code Playgroud)
我甚至不认为这是正确的方法.我只是希望能够获得一个我可以迭代并获取数据的数据快照,例如......
for (Datasnapshot child : datasnapshot) {
}
Run Code Online (Sandbox Code Playgroud)
..就好像我ref.once('value', function(snapshot)
在Javaxcript API 中使用该事件一样.
Mic*_*uer 49
这是正确的方法,你走在正确的轨道上.命名只是有点混乱(对不起!).如果你执行addListenerForSingleValueEvent,你的被覆盖的onDataChange方法将被调用一次,使用DataSnapshot,就像你想要的那样(就像"ref.once('value'...)"那样).
所以你应该能够做到:
// Add all polls in ref as rows
polls.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child : snapshot.getChildren()) {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30424 次 |
最近记录: |