从 Firebase 数据库中获取价值

乔希

我需要从 Firebase 数据库中的节点密码中获取字符串值以与用户输入进行比较,但不幸的是我无法获取该值。这是下图中我的 firebase 数据库的链接。

Firebase 数据库屏幕截图

这是我的代码如下:

 final DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("pin_code");

        mDatabase.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
            @Override
            public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
                String rface = (String) dataSnapshot.child("pincode").getValue();
                if (rface.equals(userPassword) && !rface.equals("")){
                    Intent intent = new Intent(PinActivity.this, ProfileActivity.class);
                    startActivity(intent);
                }
                else {
                    if (rface.equals("") || rface.equals(null)){
                        // Creating new user node, which returns the unique key value
                        // new user node would be /users/$userid/
                        String userId = mDatabase.push().getKey();

                        // creating user object
                        Pin pin = new Pin(authUserId, userPassword);

                        mDatabase.child(userId).setValue(pin);

                        Intent intent = new Intent(PinActivity.this, ProfileActivity.class);
                        startActivity(intent);
                    }
                    else {
                        Toast.makeText(PinActivity.this,"Invalid PIN code", Toast.LENGTH_SHORT).show();
                        return;
                    }

                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

这是json代码

  {
  "pin_code" : {
"id" : "TQYTo1NHNnhPJnOxhe1Vok3U6ic2",
"pincode" : "12345"
     }
  }
弗兰克·范·普费伦

FirebaseDatabase.getInstance().getReference("pin_code")不是指您正在寻找的节点。您很可能知道id属性,在这种情况下,您可以通过以下方式获取节点:

DatabaseReference collection = FirebaseDatabase.getInstance().getReference("p...");
Query query = collection.orderByChild("id").equalTo("TQT...ic2");

query.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
    @Override
    public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
      for (DataSnapshot child: dataSnapshot.getChildren()) {
        String rface = (String) child.child("pincode").getValue();
        if (rface.equals(userPassword) && !rface.equals("")){

我所做的改变:

  1. 在第一行,我们得到了集合:要在其下运行查询的节点。您在屏幕截图中删除了该节点的名称,但它是您标记的第二行。
  2. 在第二行中,我们id对集合下的每个子节点属性创建一个查询
  3. onDataChange我们添加了一个循环。这是必需的,因为针对 Firebase 数据库的查询可能会有多个结果。所以dataSnapshot包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。我们循环dataSnapshot.getChildren()处理这些多个结果。

如果只能有一个节点具有相同的id,则应考虑更改数据结构以将id用作节点的键。所以:

pin_codes
  uid1: "pincode1"
  uid2: "pincode2"

然后您的代码变得明显简单,因为您不再需要查询用户。您可以直接从路径中读取:

DatabaseReference user = FirebaseDatabase.getInstance().getReference("pin_codes").child("TQT...ic2");

user.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
    @Override
    public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
        String rface = (String) dataSnapshot.getValue();
        if (rface.equals(userPassword) && !rface.equals("")){

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 Firebase 数据库的 JSON 数据中获取价值

来自分类Dev

Android,从 firebase 数据库中获取价值

来自分类Dev

如何通过密钥在Firebase数据库(角度)中获取价值?

来自分类Dev

如何从Android中的Firebase实时数据库获取价值?

来自分类Dev

如何通过导出功能从Firebase实时数据库中获取用户孩子的价值

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

我无法从 Firebase 数据库中获取数据

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

如何从firebase数据库中获取数据?

来自分类Dev

如何在Firebase数据库中获取列表项

来自分类Dev

无法从 firebase 数据库中获取数组值

来自分类Dev

从 firebase 数据库中获取用户的密钥

来自分类Dev

从此查询在 Firebase 数据库中获取元素的键

来自分类Dev

无法从 Firebase 数据库中获取值

来自分类Dev

我如何从数据库 firebase 中获取推送 ID

来自分类Dev

在 Firebase 数据库中获取父级

来自分类Dev

如何从Firebase数据库获取数据

来自分类Dev

Firebase 数据库触发器 - 从快照中获取数据库对象

来自分类Dev

如何从数据库Firebase获取值

来自分类Dev

如何从Firebase数据库获取密钥?

来自分类Dev

Android firebase 获取 ch 数据库

来自分类Dev

在Firebase数据库中添加新数据后如何获取所有数据

来自分类Dev

如何在flutter中从Firebase实时数据库中获取数据?

来自分类Dev

在 SearchView 中应用 Word Stemming 从 Firebase 数据库中获取数据

来自分类Dev

如何从android中的firebase实时数据库中获取数据

来自分类Dev

如何从firebase存储获取imageUrl以存储在firebase实时数据库中?

来自分类Dev

在Firebase中还原数据库

来自分类Dev

从Firebase数据库中删除值

来自分类Dev

Android在Firebase数据库中搜索

Related 相关文章

  1. 1

    从 Firebase 数据库的 JSON 数据中获取价值

  2. 2

    Android,从 firebase 数据库中获取价值

  3. 3

    如何通过密钥在Firebase数据库(角度)中获取价值?

  4. 4

    如何从Android中的Firebase实时数据库获取价值?

  5. 5

    如何通过导出功能从Firebase实时数据库中获取用户孩子的价值

  6. 6

    如何从Firebase中的实时数据库获取数据

  7. 7

    我无法从 Firebase 数据库中获取数据

  8. 8

    Firebase 实时数据库,从键值对中获取数据

  9. 9

    如何从firebase数据库中获取数据?

  10. 10

    如何在Firebase数据库中获取列表项

  11. 11

    无法从 firebase 数据库中获取数组值

  12. 12

    从 firebase 数据库中获取用户的密钥

  13. 13

    从此查询在 Firebase 数据库中获取元素的键

  14. 14

    无法从 Firebase 数据库中获取值

  15. 15

    我如何从数据库 firebase 中获取推送 ID

  16. 16

    在 Firebase 数据库中获取父级

  17. 17

    如何从Firebase数据库获取数据

  18. 18

    Firebase 数据库触发器 - 从快照中获取数据库对象

  19. 19

    如何从数据库Firebase获取值

  20. 20

    如何从Firebase数据库获取密钥?

  21. 21

    Android firebase 获取 ch 数据库

  22. 22

    在Firebase数据库中添加新数据后如何获取所有数据

  23. 23

    如何在flutter中从Firebase实时数据库中获取数据?

  24. 24

    在 SearchView 中应用 Word Stemming 从 Firebase 数据库中获取数据

  25. 25

    如何从android中的firebase实时数据库中获取数据

  26. 26

    如何从firebase存储获取imageUrl以存储在firebase实时数据库中?

  27. 27

    在Firebase中还原数据库

  28. 28

    从Firebase数据库中删除值

  29. 29

    Android在Firebase数据库中搜索

热门标签

归档