java - SingleValueEvent 显示为空

标签 java android database firebase firebase-realtime-database

Query sqlite = mDatabaseReference.child("Messages").child(MessageSenderId).child(MessageRecieverId);
sqlite.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

                if (dataSnapshot.hasChild("Message")) {
                    String msg = dataSnapshot.child("Message").getValue().toString();
                    String from = dataSnapshot.child("From").getValue().toString();
                    String time = dataSnapshot.child("Time").getValue().toString();

                } else {
                    Toast.makeText(getApplicationContext(), "NULLLL", Toast.LENGTH_SHORT).show();
                }

数据库

enter image description here

这是数据库中最基本的东西。我从来没有遇到过 childEventvalueEvent 的问题,我现在想要一个事件,但我无法获取。

没有错误,因为我已经放置了一个 if 语句,它显示 toast 为 null,这意味着 dataSnapshot 没有名为 messages 的子项,但它就在那里。我也试过放一个 for 循环,但没用

最佳答案

您没有给出完整的引用。有一个按键列表,您必须使用 foreach 循环。

Query sqlite = mDatabaseReference.child("Messages").child(MessageSenderId).child(MessageRecieverId);
sqlite.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

for (DataSnapshot vinSnapshot : dataSnapshot.getChildren()) {
                    if (vinSnapshot .hasChild("Message")) {
                    String msg = dataSnapshot.child("Message").getValue().toString();
                    String from = dataSnapshot.child("From").getValue().toString();
                    String time = dataSnapshot.child("Time").getValue().toString();

                } else {
                    Toast.makeText(getApplicationContext(), "NULLLL", Toast.LENGTH_SHORT).show();
                }
                }

或者您可以将所有数据存储到 ArrayList 中,然后执行您的任务。

关于java - SingleValueEvent 显示为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53790174/

相关文章:

java - 安卓:版本选择

android - 构建错误 :colors. xml:1:1: 错误:序言中不允许内容

数据库索引

php - 在 Laravel 中安全移除迁移

java - 无法在 java 中使用 Google Gson 解析此内容

java - 如何设置字符串(HH :mm) to UTC time with current date and convert it to local time

java - 在 java applet 程序中按下按钮时未获得所需的输出

android - 将歌曲标题发送到 spotify 以从 android 应用程序开始播放

android - 启动新 Activity 时删除旧 Activity 实例

mysql - 学校考勤系统的数据库设计