gpt4 book ai didi

java - 我无法通过 pojo 类对象从 firebase 检索嵌套子对象

转载 作者:行者123 更新时间:2023-12-02 06:05:55 25 4
gpt4 key购买 nike

这是我的数据库表:

Database table

我在安装过程中通过 POJO 类在 Firebase 中保存一些用户信息,即姓名、照片、电话号码。稍后在应用程序中,用户可以添加可信联系人,我添加它,使用 POJO 类在同一用户表中创建嵌套子项。我的问题是如何从 firebase 获取此 trustcontact 值,即 contactname1、contactnumber1?

这是我的 POJO 类:

package com.example.fizatanveerkhan.citycops;

import java.util.HashMap;

public class UserInformation {

private String uphone;
private String uphoto ;
private String uname;
private String address;

private String contactname1;
private String contactnumber1;

public UserInformation()
{

}

public UserInformation(String phonenumber, String uphoto,String uname, String add, String cn1, String cb1)
{
this.uphone=phonenumber;
this.uphoto=uphoto;
this.uname= uname;
this.address=add;
this.contactname1=cn1;
this.contactnumber1=cb1;
}


public void setUphone(String uphone) {
this.uphone = uphone;
}

public void setUname(String uname) {
this.uname = uname;
}

public void setUphoto(String uphoto) {
this.uphoto = uphoto;
}

public void setAddress(String address) {
this.address = address;
}

public void setContactname1(String contactname1) {
this.contactname1 = contactname1;
}

public String getUphoto() {
return uphoto;
}

public String getUphone() {
return uphone;
}

public String getUname() {
return uname;
}

public String getAddress(){return address;}

public String getContactname1() {
return contactname1;
}


public String getContactnumber1() {
return contactnumber1;
}


public void setContactnumber1(String contactnumber1) {
this.contactnumber1 = contactnumber1;
}

}

这就是我保存联系人的方式,它成功保存了在用户表中使用嵌套元素 contactname1: -----, contactname2---- 创建嵌套子项

public void upload()
{

firebaseDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


UserInformation upload1 = new UserInformation();

if(number1 != null )
{ upload1.setContactnumber1(number1);
if(name1 != null)
{
upload1.setContactname1(name1);
}
firebaseDatabase.child("TrustedContact1").setValue(upload1);
}

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

}

这就是我尝试检索联系人 toast 的方式,显示用户名 n 但不显示来自dbname1 的 contactname

firebaseDatabase= database.getReference("USERS").child(uid);


ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {

if (dataSnapshot.exists()) {

current_user = dataSnapshot.getValue(UserInformation.class);
String n = current_user.getUname();

fromdbname1 = current_user.getContactname1();
Toast.makeText(getApplicationContext(), fromdbname1,
Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), n,
Toast.LENGTH_LONG).show();

}
}
@Override
public void onCancelled (DatabaseError databaseError){
Toast.makeText(getApplicationContext(), "Error Loading UserDetails",
Toast.LENGTH_LONG).show();
}
};
firebaseDatabase.addListenerForSingleValueEvent(eventListener);

最佳答案

您可以使用此架构获取可信联系人。您必须在响应类和 POJO 类之间进行匹配,因为您的代码正在等待 uphoto、uphone、uname、address、contacename1 和 contactnumber1 作为变量,但您有 uphoto、uphone、uname、address 作为变量和一个名为 TrustedContact1 的对象包含 contacename1 和 contactnumber1 ,在这种情况下,您应该使用:

package com.example.fizatanveerkhan.citycops;

import java.util.HashMap;

public class UserInformation {

private String uphone;
private String uphoto ;
private String uname;
private String address;

private TrustedContact1 TrustedContact1;

// use inner class on create class in another file
class TrustedContact1{
public TrustedContact1(){
}
private String contactname1;
private String contactnumber1;
}

// getters and seeters

}

关于java - 我无法通过 pojo 类对象从 firebase 检索嵌套子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55940101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com