无法从Firebase数据库中检索数据

时间:2017-04-13 02:26:22

标签: android firebase firebase-realtime-database

我正在使用Firebase数据库创建我的第一个应用。之前我能够访问数据库,但之后我更新了我的SDK并且无法访问Firebase数据库。这是我使用的功能

notedatabase = FirebaseDatabase.getInstance();
DatabaseReference mrootDatabaseReference = notedatabase.getReference();
DatabaseReference firstchildref =mrootDatabaseReference.child(initpath);

当我运行它时,它会给getserviceinstance失败错误。当我尝试调试程序时,错误指出notedatabase= null。我也改变了我的数据库规则。我该如何解决这个问题?

对不起,这是我第一次在这里提问,如果我留下任何信息,请告诉我。谢谢。

编辑:应用程序正常运行

String initpath = intent.getExtras().getString("initpath",""); databaseref = FirebaseDatabase.getInstance().getReference(); final DatabaseReference numberofsubjectsRef = databaseref.child(initpath);

2 个答案:

答案 0 :(得分:1)

试试这个。有关official link.

的更多详细信息
    DatabaseReference databaseTracks;

    List<Track> tracks;

 databaseTracks = FirebaseDatabase.getInstance().getReference("tracks").child(intent.getStringExtra(MainActivity.ARTIST_ID));



    @Override
    protected void onStart() {
        super.onStart();

        databaseTracks.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                tracks.clear();
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    Track track = postSnapshot.getValue(Track.class);
                    tracks.add(track);
                }
                TrackList trackListAdapter = new TrackList(ArtistActivity.this, tracks);
                listViewTracks.setAdapter(trackListAdapter);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }

答案 1 :(得分:0)

好的,因为您是第一次发布它,请在使用实时数据库制作firebase消息传递应用之前确保您已正确完成这些事情。

1)您已在firebase中创建了一个项目,并正确添加了项目名称和包。  enter image description here

2)如果你的firebase项目规则(如上图所示)已定义,请确保提供规则代替Null,如果你没有选择firebase UI实现的任何firebase身份验证,那么它应该是真的。

3)对于访问相同的消息线程,您的子路径的Initpath应始终相同。