- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Firebase 上有一个数据库,正试图让 android 将其打印到 ListView 中。我可以让 ListView 打印一些东西,但它似乎是值的一些 ID,而不是实际值。重点是能够做一个搜索栏,可以找到数据库中的任何数据。我在 addValueEventListener 中有一些注释代码。这段代码应该可以工作,但是当我使用它时,当我转到“ExistingCustomerActivity” Activity 时,我的应用程序崩溃而没有错误。 My database structure and the output from the app, with the current code.请注意,ListView 当前在“Buyers”下方打印值。有没有人可以帮助解决这个问题?提前致谢。更新:我可以看到数据已正确加载到日志中,但它仍然显示我假设的某种 ID。
public class ExistingCustomerActivity extends AppCompatActivity {
private DatabaseReference mDatabaseReference;
private ListView mUserList;
private ArrayList<Buyers> mUsernames = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_existing_customer);
mDatabaseReference = FirebaseDatabase.getInstance().getReference("Buyers");
mUserList = (ListView) findViewById(R.id.UserListView);
final ArrayAdapter<Buyers> arrayAdapter = new ArrayAdapter<Buyers>(this, android.R.layout.simple_list_item_1, mUsernames);
mUserList.setAdapter(arrayAdapter);
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Buyers buyerList = new Buyers(childSnapshot);
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
Map<String, String> map = (Map<String, String>) childSnapshot.getValue();
Log.v("YourValue,","Map value is:" +map.toString());
Buyers buyerList = new Buyers(map);
mUsernames.add(buyerList);
}
arrayAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
买家类:
public class Buyers {
private String car_Value;
private String interest;
private String driverLicenseNr;
private String name;
private String personNr;
private String phone_Number;
public Buyers(Map<String,String> map){
car_Value = map.get("Bil");
interest = map.get("Interresse");
driverLicenseNr = map.get("Kørekortnr");
name = map.get("Navn");
personNr = map.get("Personnr");
phone_Number = map.get("Telefonnr");
}
最佳答案
您需要根据 firebase 数据库结构更改您的 Buyers
类变量或使用 Map 获取值
尝试使用下面的代码使用 Map 从 Buyers
获取值
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Buyers buyerList = new Buyers(childSnapshot);
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
Map<String,String> map=(Map<String, String>) childSnapshot.getValue();
Buyers buyerList = new Buyers(map);
mUsernames.add(buyerList);
}
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
将构造函数从 DataSnapshot
更改为 Map
并获取值并设置到本地 Buyers
变量中。
public class Buyers {
private String car_Value;
private String interest;
private String driverLicenseNr;
private String name;
private String personNr;
private String phone_Number;
public Buyers(Map<String,String map){
car_Value = map.get("Bil");
interest = map.get("Interresse")
driverLicenseNr = map.get("Korekortnr")
name = map.get("Navn")
personNr = map.get("Personnr")
phone_Number =map.get("Telefonnr")
}
}
关于java - 调用 addValueEventListener 时 Firebase 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46581900/
我正在尝试使用 Firebase 获取存储在我的数据库中的数据,但未调用 addValueEventListener。下面是我的数据库的样子: 下面是我的规则: 下面是我的代码: package co
这是我的代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
我在使用一台特定设备时遇到问题(我的主要设备是 Galaxy s7) 如下所述: Firebase addValueEventListener not being triggered addvalue
我正尝试在我的 Android 应用程序中从 Firebase 获取特定数据。在 onCreate 中,我定义了我的 DatabaseReference 和 ArrayList: databaseRe
我正在使用 Firebase 从 Android SDK 使用 addValueEventListener 检索数据,但我发现有时响应时间至少需要 1 分钟才能获得结果。 我的代码: Firebase
有人遇到过这个问题吗?我的 firebase 代码基本上只能工作几个小时(功能齐全),然后当我再次尝试时它就不再工作了。请参阅下面的代码了解我是如何调用它的: ValueEventLi
我已将 setPersistenceEnabled 设置为 true,我正在使用 addValueEventListener 并在其中使用 onDataChange 方法。每次调用该方法时,我的应用程
目前,我正在编写一个社交媒体应用程序,现在我想从我的 firebase 数据库中检索数据,其中每个用户都有一些评分。 mUploads - 它存储上传的项目(照片、姓名、城市、ID)。mDatabas
我正在尝试在 Android 应用程序中从 Firebase 获取特定数据。放代码 DatabaseReference Ref = FirebaseDatabase.getInstance()
在我下面的代码中,函数 setPhoto(url) 始终接收空 url,但如果我通过单击按钮调用另一个函数并且它需要该 url,它就会正确接收数据。 @Override protected void
因此,在我的 for 循环中,我从一个路径检索值,然后在查询中,我使用第一个 for 循环中的 CreatorUid 从另一个路径获取其他字符串。我需要找到一种方法来检索这些字符串并将它们添加到位于第
我想从 addValueEventListener() 方法接收一个字符串,我用它来转售 Firebase 数据库中的数据。数据正确到达。 但是当确定要从该方法中获取字符串以在另一个方法中使用它时,它
我在名为“PrincipalActivity.java”的 Activity 中有此代码 btnSignIn.setOnClickListener(new View.OnClickListener()
我正在创建一个带有从 Firebase 中提取数据的 fragment 的 Android 应用程序。 目前,我已经在 onStart() 方法中设置了我的 addValueEventListener
我想将从查询中检索到的数据保存到全局类变量,例如 .RoomType,但是当它存在于 query.addValueEventListener 的范围时,数据永远不会保存。当我在其范围内执行 Log.w
有没有一种无需使用 addValueEventListener 即可访问 firebase 数据的方法?这样,我可以在需要时随时访问数据,而不是仅在数据发生更改时才被限制访问。 我正在用 Java 编
我在 Firebase 上有一个数据库,正试图让 android 将其打印到 ListView 中。我可以让 ListView 打印一些东西,但它似乎是值的一些 ID,而不是实际值。重点是能够做一个搜
我正在使用 FireBase 来使用 Android 应用程序。在我添加的数据库中,我向其中一个用户出版物添加了两个表。我将发布信息和 URI 的数量放入其中,以便通过另一个表检索每个用户的信息。当我
我试图根据数据库中的值条件在 addValueEventListener 中执行一些代码,但是当数据更改时,监听器根据旧数据执行条件,并在第二次尝试监听器执行我想要使用的数据。但是数据更改监听器执行l
我有两个 Activity ,比如 ActivityOne.java 和 ActivityTwo.java。我正在从 ActivityOne 导航到 ActivityTwo,条件如下。 databas
我是一名优秀的程序员,十分优秀!