Firebase“用户缺少一个没有参数的构造函数” [英] Firebase "User is missing a constructor with no arguments"
问题描述
我试图从Firebase中的/ User / tree中检索我的用户详细信息。我有以下用户对象:
pre $ public class User {
private String name;
私人字符串电子邮件;
私人FirebaseUser firebaseUser;
private String lastOnline;
私人LatLng latLng;
private ArrayList< SwapLocation>位置;
$ b $ public User(){}
$ b $ public String getName(){
if(firebaseUser.getDisplayName()!= null&&!firebaseUser.getDisplayName ().equals())
return firebaseUser.getDisplayName();
$ b $ if(name!= null&&!name.equals())
return name;
return;
}
public void setName(String name){
this.name = name;
public String getEmail(){
if(firebaseUser.getEmail()!= null&& firebaseUser.getEmail()。equals())
返回firebaseUser.getEmail();
if(email!= null&& email.equals())
return email;
return;
}
public void setEmail(String email){
this.email = email;
}
public void setFirebaseUser(FirebaseUser firebaseUser){
this.firebaseUser = firebaseUser;
}
public FirebaseUser getFirebaseUser(){
return firebaseUser;
}
public void setLastOnline(String lastOnline){
this.lastOnline = lastOnline;
public String getLastOnline(){
if(lastOnline!= null)
return lastOnline;
return;
}
public void setLatLong(LatLng latlng){
this.latLng = latlng;
public LatLng getLatLong(){
return this.latLng;
}
public ArrayList< SwapLocation> getLocations(){
返回位置;
public void setLocations(ArrayList< SwapLocation> locations){
this.locations = locations;
$ b我试图从Firebase中检索这个对象。该对象是在dataSnapshot中检索的,虽然它有序列化到我的用户对象的问题。
这是我从Firebase检索对象的方式:
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $。
ref.addListenerForSingleValueEvent(
new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot){
User this_user = dataSnapshot.getValue(User.class) ;
}
@Override
public void onCancelled(DatabaseError databaseError){}
});
但是当试图做'用户this_user = dataSnapshot.getValue(User.class)'我得到错误,说用户缺少一个没有参数的构造函数
任何帮助将是伟大的,谢谢
你必须得到这个错误,因为你的User类是一个子类。
解决方案:
标记您的类为静态:
public class SomeParentClass {
public static class User {
....
}
}
或者在一个单独的文件中创建它。
I am trying to retrieve my user details from the /User/ tree i have in Firebase. I have the following User object :
public class User {
private String name;
private String email;
private FirebaseUser firebaseUser;
private String lastOnline;
private LatLng latLng;
private ArrayList<SwapLocation> locations;
public User(){ }
public String getName(){
if(firebaseUser.getDisplayName() != null && !firebaseUser.getDisplayName().equals(""))
return firebaseUser.getDisplayName();
if(name != null && !name.equals(""))
return name;
return "";
}
public void setName(String name){
this.name = name;
}
public String getEmail(){
if(firebaseUser.getEmail() != null && firebaseUser.getEmail().equals(""))
return firebaseUser.getEmail();
if(email != null && email.equals(""))
return email;
return "";
}
public void setEmail(String email){
this.email = email;
}
public void setFirebaseUser(FirebaseUser firebaseUser){
this.firebaseUser = firebaseUser;
}
public FirebaseUser getFirebaseUser(){
return firebaseUser;
}
public void setLastOnline(String lastOnline){
this.lastOnline = lastOnline;
}
public String getLastOnline(){
if(lastOnline != null)
return lastOnline;
return "";
}
public void setLatLong(LatLng latlng){
this.latLng = latlng;
}
public LatLng getLatLong(){
return this.latLng;
}
public ArrayList<SwapLocation> getLocations(){
return locations;
}
public void setLocations(ArrayList<SwapLocation> locations){
this.locations = locations;
}
}
I am trying to retrieve this object from Firebase. The object is retrieved in the dataSnapshot, although it has a problem serializing to my User object.
This is how i am retrieving the object from Firebase:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child(users_group).child(user.getUid());
ref.addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User this_user = dataSnapshot.getValue(User.class);
}
@Override
public void onCancelled(DatabaseError databaseError) { }
});
But when trying to do 'User this_user = dataSnapshot.getValue(User.class)' i get an error saying "User is missing a constructor with no arguments"
Any help would be great, thanks
You must be getting this error because your User class is a sub class.
Solution:
Either mark your class static:
public class SomeParentClass{
public static class User {
....
}
}
or create it in a separate file.
这篇关于Firebase“用户缺少一个没有参数的构造函数”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!