Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索数据时出现Android DatabaseException错误_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

检索数据时出现Android DatabaseException错误

检索数据时出现Android DatabaseException错误,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我试图学习如何将Firebase实现到以前使用SQL db的现有项目中。我的写代码工作正常,但我的读操作引发了下面的DatabaseException错误 com.google.firebase.database.DatabaseException:发现冲突的 名称为setWallpaper的setters(与定义的setWallpaper冲突 在android.content.ContextWrapper上) 我做了大量的研究,只能在写入数据库时找到此错误的引用,而不是从数据库中读取,因此我非

我试图学习如何将Firebase实现到以前使用SQL db的现有项目中。我的写代码工作正常,但我的读操作引发了下面的DatabaseException错误

com.google.firebase.database.DatabaseException:发现冲突的 名称为setWallpaper的setters(与定义的setWallpaper冲突 在android.content.ContextWrapper上)

我做了大量的研究,只能在写入数据库时找到此错误的引用,而不是从数据库中读取,因此我非常困惑我可能在代码中做了什么导致了此错误的发生。方法代码如下所示

protected void lastFive() {
    final DatabaseReference gameRef = database.getReference("Games");
    final List<User> gamesList = new ArrayList<>();
    gameRef.orderByChild("Date").limitToLast(5).addValueEventListener (new ValueEventListener ( ) {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            gamesList.clear ();
            for (DataSnapshot postSnapshot: dataSnapshot.getChildren ()){
                User user = postSnapshot.getValue(User.class);
                gamesList.add (user);
                System.out.println(user.getName () + " : " + user.getScore ());
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            throw databaseError.toException();
        }
    });
}
我只是断断续续地在安卓上工作了几个月,而Firebase还不到这个数字的一半,所以这里面可能有一些我根本看不到的明显错误。FWIW,此方法旨在显示应用程序上最近5场比赛的用户名和分数。我有点担心输出会是什么样子,我知道这超出了这个问题的范围,但在我能够读取数据之前,我甚至无法进行这方面的工作。非常感谢您的任何帮助或建议

正在根据请求添加用户代码

public class User extends Application {

    //private variable
    private static User globalVar;

    //variables
    String _id;
    String _name;
    int _score;
    String _date;
    String _email;

    // Empty constructor
    public User(){}

    // constructor
    public User(String id, String name, int score, String date){
        this._id = id;
        this._name = name;
        this._score = score;
        this._date = date;
    }

    public User(String id, int score){
        this._id = id;
        this._score = score;
    }

    public User(String id){
        this._id = id;
    }

    public User(int score, String date){
        this._score = score;
    }

    // getting ID
    public String getID(){
        return this._id;
    }

    // setting id
    public void setID(String id){
        this._id = id;
    }

    // getting name
    public String getName(){
        return this._name;
    }

    // setting name
    public void setName(String name){
        this._name = name;
    }

    // getting scores
    public int getScore(){ return this._score; }

    // setting scores
    public void setScore(int score){ this._score = score; }

    // getting name
    public String getDate(){
        return this._date;
    }

    // setting name
    public void setDate(String date){
        this._date = date;
    }

    // getting email
    public String getEmail(){
        return this._email;
    }

    // setting email
    public void setEmail(String email){
        this._email = email;
    }

    public static synchronized User getGlobalVar(){
        if(globalVar == null){
            globalVar = new User();
        }
        return globalVar;
    }
}

除了发布的异常,我可以得出结论,您的
User.class
中没有字段的getter/setter。理想情况下,您的
用户类应该是:

   public class User{
   private String name;

   public String getName(){
   return name;
   }

   public void setName(String name){
   this.name = name;
   }
}

请验证您是否有这样的类结构。

请显示用户类的源代码。请为用户添加模型类。我想可能存在一些问题。您是否在检索fire base DB之前将值放入其中。在运行此代码之前,已将用户代码和值添加到FB中。理想情况下,我希望在说了所有的话和做了所有的事情后,它会显示在弹出窗口中,当数据库为空时,它会显示一条消息“没有玩游戏”,但这是在我了解如何成功检索数据之后。很抱歉,我从一开始就没有想到要这么做。什么是应用程序类??它是Android的应用程序类吗?我将用户类设置为应用程序类,以便在代码前面发送数据时传递全局变量。不要这样做。。。这是最大的缺陷。。。以你想要的其他类为例,你是对的,扩展应用程序是个问题。
   public class User{
   private String name;

   public String getName(){
   return name;
   }

   public void setName(String name){
   this.name = name;
   }
}