【发布时间】:2019-05-02 16:23:25
【问题描述】:
这是我的数据库表:
我在安装过程中通过 POJO 类将一些用户信息保存在 Firebase 中,例如姓名、照片、电话号码。稍后在应用程序中用户可以添加受信任的联系人我正在添加它,使用 POJO 类在同一个用户表中创建一个嵌套子项。 我的问题是如何从 firebase 获取这个trustedcontact 值,即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 的联系人名
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);
【问题讨论】:
标签: java android firebase firebase-realtime-database