Nic*_*omb 10 java android firebase firebase-realtime-database
我正在尝试从Firebase中的/ User/tree中检索我的用户详细信息.我有以下User对象:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试从Firebase中检索此对象.虽然在序列化到我的User对象时遇到问题,但是在dataSnapshot中检索该对象.
这是我从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) { }
});
Run Code Online (Sandbox Code Playgroud)
但是当尝试执行'User this_user = dataSnapshot.getValue(User.class)'时,我收到错误消息"用户缺少没有参数的构造函数"
任何帮助都会很棒,谢谢
His*_*eer 34
您必须收到此错误,因为您的User类是一个子类.
将您的类标记为静态:
public class SomeParentClass{
public static class User {
....
}
}
Run Code Online (Sandbox Code Playgroud)
或者在单独的文件中创建它.
Kis*_*nki 25
我已经在kotlin中使用firebase实时数据库来解决这个问题并通过这个解决方案来解决它
对于Kotlin,如果你使用下面的数据类作为firebase,
data class UserModel(
var UserName: String,
var UserType: Int
)
Run Code Online (Sandbox Code Playgroud)
然后你会得到一个错误
com.google.firebase.database.DatabaseException:UserModel未定义无参数构造函数.如果您使用的是ProGuard,请确保不剥离这些构造函数.
因此,您需要初始化其值.
data class UserModel(
var UserName: String = "",
var UserType: Int = 0
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8151 次 |
| 最近记录: |