Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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
Java 无二传手/吸气手火力基地_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 无二传手/吸气手火力基地

Java 无二传手/吸气手火力基地,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,大家好,我有一个问题。我想从Firebase live数据库检索数据,它一直告诉我它找不到getter和setter,但正如您在下面看到的那样,我这样做了,我创建了一个类,其中setter和getter具有相同的数据库字段名称 谁能告诉我我做错了什么,因为我一点都不知道 先谢谢你 数据库照片: 活动和类的代码,您可以在其中看到getter和setter package com.example.ipill; public class CartActivity extends AppCompat

大家好,我有一个问题。我想从Firebase live数据库检索数据,它一直告诉我它找不到getter和setter,但正如您在下面看到的那样,我这样做了,我创建了一个类,其中setter和getter具有相同的数据库字段名称

谁能告诉我我做错了什么,因为我一点都不知道

先谢谢你

数据库照片:

活动和类的代码,您可以在其中看到getter和setter

package com.example.ipill;

public class CartActivity extends AppCompatActivity {

    private TextView total;
    private ImageButton removeFromCart;
    private Button pay;


    private RecyclerView mResultList;
    private DatabaseReference mUserDatabase;
    public static int cart_count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cart);
        mUserDatabase = FirebaseDatabase.getInstance().getReference("Cart");

        total        = findViewById(R.id.TotalPrice);
        removeFromCart   = findViewById(R.id.removeFromCart);
        mResultList  = findViewById(R.id.cartList);
        pay    = findViewById(R.id.pay);


        mResultList.setHasFixedSize(true);
        mResultList.setLayoutManager(new LinearLayoutManager(this));



         // Attach a listener to read the data at our posts reference
          mUserDatabase.addValueEventListener(new ValueEventListener() {


            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Users_get post = dataSnapshot.getValue(Users_get.class);
                System.out.println("DATAAAA: "+post);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                System.out.println("The read failed: " + databaseError.getCode());
            }
        });
    }



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

    // View Holder Class
    public static class UsersViewHolder extends RecyclerView.ViewHolder {
        View mView;
        String nome;
        String surname;
        Long prezzo;
        public UsersViewHolder(View itemView) {
            super(itemView);
            mView = itemView;

        }

        public void getDetails(String name,String cognome,Long price){
            nome=name;
            surname=cognome;
            prezzo=price;
        }


        public void setDetails(String name, String surname, Long price) {

            TextView user_name = (TextView) mView.findViewById(R.id.name_text);
            TextView user_surname = (TextView)mView.findViewById(R.id.status_text);
            TextView user_price = (TextView)mView.findViewById(R.id.price);

            user_name.setText(name);
            user_surname.setText(surname);
            user_price.setText(Long.toString(price));

        }
     }
}
阶级

public class Users_get  {
    public String getName() {
        return name;
    }

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

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public Long getPrice() {
        return price;
    }

    public void setPrice(Long price) {
        this.price = price;
    }

    private String name, surname;
    private Long price;
}
JSON结构

{
  "Cart": {
    "-M0U3UXq2ZA00Jq5o9as": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    },
    "-M0WlUbQHj1hdH40uWVF": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    },
    "-M0WxZhI98Xb1s9Xy5HV": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    },
    "-M0X00Zr64RocyQHhoFB": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    }
  },
  "Users": {
    "01": {
      "Name": "Alex",
      "Price": 120,
      "Surname": "Kyto"
    },
    "02": {
      "Name": "Alex",
      "Price": 200,
      "Surname": "Pablo"
    }
  }
}

将类更改为:

public class Users_get  {

private String name, surname;
private Long price;


public String getName() {
    return name;
}

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

public String getSurname() {
    return surname;
}

public void setSurname(String surname) {
    this.surname = surname;
}

public Long getPrice() {
    return price;
}

public void setPrice(Long price) {
    this.price = price;
}


public Users_get(String name,Long price,String surname) {
    this.price = price;
    this.name = name;
    this.surname = surname;

}


public Users_get() {

}

因为您使用的是IDE,所以只需单击generate Getter and Setter,它就会自动为您执行该操作,而不是手动编写方法。

将类更改为:

public class Users_get  {

private String name, surname;
private Long price;


public String getName() {
    return name;
}

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

public String getSurname() {
    return surname;
}

public void setSurname(String surname) {
    this.surname = surname;
}

public Long getPrice() {
    return price;
}

public void setPrice(Long price) {
    this.price = price;
}


public Users_get(String name,Long price,String surname) {
    this.price = price;
    this.name = name;
    this.surname = surname;

}


public Users_get() {

}

由于您使用的是IDE,因此只需单击生成getter和setters,它就会自动为您生成getter和setters,而不是手动编写方法。

您会收到警告,因为在
用户\u get
类中,您的字段没有正确的getter。如果您有一个名为
name
的字段,则正确的getter应该是:

public String getName() {
    return name;
}
而不是:

public String getname() {
    return name;
}

参见大写字母
N
与小写字母
N
?要解决此问题,您应该更改
Users\u get
类中所有getter的所有名称,如上所述。

您会收到警告,因为在
Users\u get
类中,您的字段没有正确的getter。如果您有一个名为
name
的字段,则正确的getter应该是:

public String getName() {
    return name;
}
而不是:

public String getname() {
    return name;
}

参见大写字母
N
与小写字母
N
?要解决这个问题,您应该更改
Users\u-get
类中所有getter的所有名称,如上所述。

除了其他答案之外,要获取
Users\u-get
数据,根据数据库结构您必须再上一层

当前您的数据库引用指向购物车。因此,迭代cart的子级以获取cart数据。检查以下内容:

mUserDatabase = FirebaseDatabase.getInstance().getReference("Cart");
mUserDatabase.addValueEventListener(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
            Users_get post = childSnapshot.getValue(Users_get.class);
            System.out.println("DATAAAA: " + post);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        System.out.println("The read failed: " + databaseError.getCode());
    }
});

除了其他答案之外,要获得
用户\u获得
数据,根据数据库结构,您必须再上一层

当前您的数据库引用指向购物车。因此,迭代cart的子级以获取cart数据。检查以下内容:

mUserDatabase = FirebaseDatabase.getInstance().getReference("Cart");
mUserDatabase.addValueEventListener(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
            Users_get post = childSnapshot.getValue(Users_get.class);
            System.out.println("DATAAAA: " + post);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        System.out.println("The read failed: " + databaseError.getCode());
    }
});

你犯了什么错误?在错误中,它应该说明发生这种情况的字段gw/ClassMapper:class com.example.ipill.Users上找不到-M0WlUbQHj1hdH40uWVF的setter/field\u get W/ClassMapper:class com.example.ipill.Users上找不到-m0u3uxqza00jq5o9a的setter/field\u在class com.example.ipill.Users上找不到-m0x00zr64rocyqhhof的setter/field\u在com.example.ipill.Users类上找不到-M0WxZhI98Xb1s9Xy5HV的设置器/字段\u获取您得到的错误是什么?在错误中,它应该说明发生这种情况的字段gw/ClassMapper:class com.example.ipill.Users上找不到-M0WlUbQHj1hdH40uWVF的setter/field\u get W/ClassMapper:class com.example.ipill.Users上找不到-m0u3uxqza00jq5o9a的setter/field\u在class com.example.ipill.Users上找不到-m0x00zr64rocyqhhof的setter/field\u在com.example.ipill.Users上找不到-M0WxZhI98Xb1s9Xy5HV的setter/字段。\u获取“它不工作”对我没有帮助,帮助你解决问题。什么不起作用?你还有别的错误吗?这是什么行为?我做了你告诉我的更改,我一直得到相同的错误:W/ClassMapper:在class com.example.ipill.Users上找不到-M0WlUbQHj1hdH40uWVF的setter/字段。在class com.example.ipill.Users上找不到-m0u3uxq2za00jq5o9a的setter/字段。在class com.example.ipill.Users上找不到-m0x00zr64rocyqhhof的setter/字段com.example.ipill.Users_在com.example.ipill.Users类上找不到-M0WxZhI98Xb1s9Xy5HV的setter/字段。这似乎是另一个警告,意味着原始警告已消失。这很好:)为此,请将您的数据库结构添加为JSON文件或至少一个屏幕截图。我添加了一张照片,以便您可以更好地看到它“它不工作”无助于我,帮助您解决问题。什么不起作用?你还有别的错误吗?这是什么行为?我做了你告诉我的更改,我一直得到相同的错误:W/ClassMapper:在class com.example.ipill.Users上找不到-M0WlUbQHj1hdH40uWVF的setter/字段。在class com.example.ipill.Users上找不到-m0u3uxq2za00jq5o9a的setter/字段。在class com.example.ipill.Users上找不到-m0x00zr64rocyqhhof的setter/字段com.example.ipill.Users_在com.example.ipill.Users类上找不到-M0WxZhI98Xb1s9Xy5HV的setter/字段。这似乎是另一个警告,意味着原始警告已消失。这很好:)为此,请将您的数据库结构添加为JSON文件或至少是一个屏幕截图。我添加了一张照片,以便您能更好地看到它谢谢您的回答,解决了我的问题。我认为,由于firebase或android studio从数据集获取数据,因此它会自动将对象数据映射到我的变量,因为它获取了整个对象,但正如我所看到的,它并没有那么智能:))非常感谢大家的支持。谢谢这个答案,解决了我的问题。我认为,由于firebase或android studio从数据集获取数据,因此它将自动将对象数据映射到我的变量,因为它获取整个对象,但正如我所看到的,它并不那么智能:))非常感谢大家的支持。