从firebase检索数据时出错



我正在使用Firebase进行android开发。

我正在尝试从Firebase实时数据库中检索数据。

这是我的代码:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
Post post = dataSnapshot.getValue(Post.class);
// ..
}
};
database_ref.addValueEventListener(postListener);
}
}

我得到这个错误:

类"从ValueEventListener派生的匿名类"必须声明为抽象或在"ValueEventListener'"中实现抽象方法"onCancelled(DatabaseError(">

错误似乎非常明显。您的IDE一定会给您一个错误,即您只覆盖了OnDataChanged(),而没有覆盖onCancelled()

在实时数据库中获取实时更改的示例是:

ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
Post post = dataSnapshot.getValue(Post.class);
// ..
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
}};  mPostReference.addValueEventListener(postListener);

此处的官方文档代码片段-读写数据

您只覆盖了onDataChange((-方法,还必须覆盖onCancelled((-方式。

ValueEventListener有两个方法,第一个是onDataChange((,第二个是onCancelled。将其添加到您的ValueEventListener:中
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
Post post = dataSnapshot.getValue(Post.class);
// ..
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
//onCancelled
}
};
database_ref.addValueEventListener(postListener);
}

}

相关内容

  • 没有找到相关文章

最新更新