我对Firebase真的是个新手。我正在做一个使用firestore作为数据库的Android应用程序。我的问题是当我试图检查某个数据是否存在时。它总是说它没有。
这就是发生这种情况的方法。
private void usernameInDatabase(final String username){
if (registration != null)
registration.remove();
registration = utilizadores.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override public void onEvent(@Nullable DocumentSnapshot snapshot,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w("Utilizadores", "Listen failed.", e);
return;
}
if (snapshot != null && snapshot.exists()) {
Log.d("Utilizadores", snapshot.getData().toString());
Log.d("Utilizadores", username);
if (snapshot.get(username) == null) {
loginFormState.setValue(new LoginFormState(R.string.utilizadorNaoBaseDados, null));
utilizadorNaBaseDados = false;
Log.d("Utilizadores", "Not Database :(");
} else {
utilizadorNaBaseDados = true;
Log.d("Utilizadores", "base de dados ;D");
}
} else {
Log.d("Utilizadores", "Current data: null");
}
}
});
}
如您所见,我在这里检查了可以从firestore检索的数据:
Log.d("Utilizadores", snapshot.getData().toString());
Log.d("Utilizadores", username);
这就是我对Utilizadores的定义。
DocumentReference utilizadores = db.collection("Domum").document("Utilizador");
要根据数据库的结构检查用户的存在,只需在Document.getData()
返回的Map
对象上使用contains()
方法。因此在代码中应该如下所示:
utilizadores.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
Map<String, Object> map = document.getData();
if (map.containsKey("daniel@gmail.com")) {
Log.d(TAG, "User exists!");
} else {
Log.d(TAG, "User does not exist!");
}
} else {
Log.d(TAG, "No such document");
}
}
}
});
如果您需要实时获取数据,那么您应该使用AddSnapshotListener()
,方法与上面相同。
我试图从我的firebase数据库中检索数据,并在文本字段中打印一条语句,但我一直得到空值。我正在使用尝试到达我想要的子节点。我的textfield一直在说“欢迎null登录为null”我的Firebase数据库
问题内容: 我正在法国学习,所以很难找到法语教程来解决我的问题。因此,我不得不问我的问题,希望有一个令人满意的解决方案。 我的问题是我在firebase上读取数据时遇到了麻烦,并且花了三天时间。 我有这样的结构: 我已经开始编写一些代码,可以恢复密钥,但是无法恢复这些值“ nom”,“ argent”等。 问题答案: John的替代方法是使用来获取每个属性:
我花了几个小时来查找为什么我的代码没有从这个结构X:/中检索到文件“firstname”的原因 当我在debug中时,我可以看到Firebase检索与“firstname”相同级别的所有其他字段,但最后一个字段始终为null,即使它中有有效数据。 这是我创建FireStoreRecyclerOptions的行: 这是我的QueryFireStore: 而X类是一个POJO,包含以下数据结构:
我正在两个标记之间画一条路线,我想保存那条路线。为此,我将包含lat和lng的ArrayList保存在Firebase数据库中。但我在取回航路点时遇到了问题。我是这样插入的: 在检索数据时,我尝试执行以下操作:
我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地:
我试图实现一对一聊天使用firebase实时数据库,我插入消息与senderid,Recieverid,消息,日期,sendername,Recievername,在我的情况下,不同的用户是不同的聊天室,我需要展示这个聊天室一对一聊天室我如何实现在我的android应用程序 下面是我检索数据的代码 但这段代码从聊天室获取所有数据,但我需要排除发送者名和接收者名相等的消息,sendername是从应