1

我正在尝试将值名称和电话作为名称 =“名称”,电话 =“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 类型的值转换为字符串

4

4 回答 4

0

似乎是 inFirebaseDatabase存储为一个Long值。您可以检查并替换数据库中的这些值,或者您可以在模型类中创建另一个设置器来接受Long值。然后,您可以使用String.valueOf()方法将值存储在私有字段中。

希望能帮助到你。

于 2018-10-19T16:15:35.320 回答
0

您对骑手课程没有任何问题。您的问题与 Firebase 数据库中的子值类型有关

带有 => "" 的子值是它的字符串值,如果没有 "" ,它的整数值

您的构造函数参数类型 String 是的,它的 okey 但您的构造函数参数类型相同的 Firebase 数据库子值类型。我有像你一样的问题,我解决了这个问题 => 将子值 123456 更改为“123456”最后你解决了这个问题

于 2019-06-14T21:15:15.063 回答
0

我认为问题在于您没有在 Firebase DB 中的“”之间添加您的电话号码。这意味着 Firebase 会将该值视为 Long,并且根据您提供的代码,您希望它是 String。

而是像这样在 Firebase DB 控制台中添加值:

phone="123456"

在此处输入图像描述

在我的照片中,我希望数字是整数或长整数。

如果要更改 Firebase 控制台中的值,只需单击该值并开始编辑。

于 2018-10-19T16:17:14.140 回答
0

正如我所看到的,在您的数据库中,您的某些键中的电话不是电话=“19485”而是电话=3947。在那些没有“”的地方更改为“”。您可以从 Firebase 手动编辑它们

于 2018-10-19T17:49:31.823 回答