【发布时间】:2019-06-15 05:15:15
【问题描述】:
我正在尝试将值 name 和 phone 作为 name ="name", phone="123456"。我该如何解决?
我的数据库结构:用户/驱动程序 (name="Name", phone="123456")
我的骑手班:
public class Rider {
private String name,email,password,phone;
public Rider(){}
public Rider(String name, String phone){
this.name=name;
this.phone=phone;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
public void setName(String name){
this.name=name;
}
public void setPhone(String phone){
this.phone=phone;
}
我的活动课:
public void onKeyEntered(String key, GeoLocation location) {
FirebaseDatabase.getInstance().getReference("Users").child("Drivers")
.child(key).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Rider rider=dataSnapshot.getValue(Rider.class);
mMap.addMarker(new MarkerOptions()
.position(new LatLng(mLastLocation.getLatitude(),mLastLocation.getLongitude()))
.flat(true)
.title(rider.getName())
.snippet("phone:"+rider.getPhone())
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_car_background)));
}
错误:com.google.firebase.database.DatabaseException:无法将 java.lang.Long 类型的值转换为字符串
【问题讨论】:
-
您确定您的数据库中的
phone是一个字符串而不是一个数字吗?在控制台中,是否有引号? -
我的手机值为“123456”,姓名值为“迈克尔”。
-
你能贴一张你的数据库的照片吗?谢谢
-
是的,所以,您有一个电话字符串值,但您正试图将其强制输入数字字段。你不能这样做 - 类型必须匹配。
-
确保类型匹配。如果您的数据对象需要一个字符串,请确保您在数据库中有一个字符串。如果您的数据对象需要 Long,请确保您在数据库中有一个数字。
标签: java firebase firebase-realtime-database