【问题标题】:Get specific column data from firebase data in android从android中的firebase数据中获取特定的列数据
【发布时间】:2017-09-03 00:46:53
【问题描述】:

您好,我已经创建了 firebase 数据库。有一个表用户,其中我正在输入姓名和电子邮件。从那个用户那里,我只想在我的 android 应用程序中获取 name 列的值。 我想为 name 的值敬酒。不需要从 firebase 数据库中获取所有值,我只想获取 name 列值

这是我的代码

        mDatabase = mFirebaseInstance.getReference("users");

        // store app title to 'app_title' node
        mFirebaseInstance.getReference("app_title").setValue("Realtime Database");

        // app_title change listener
        mFirebaseInstance.getReference("app_title").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {


                String appTitle = dataSnapshot.getValue(String.class);

                // update toolbar title
                getSupportActionBar().setTitle(appTitle);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value

            }
        });

        // Save / update the user
        btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = inputName.getText().toString();
                String email = inputEmail.getText().toString();

                // Check for already existed userId
//                if (TextUtils.isEmpty(userId)) {
                createUser(name, email);
//                }
            }
        });


    }

    private void createUser(String name, String email) {

        userId = mDatabase.push().getKey();

        Users user = new Users(name, email);

        mDatabase.child(userId).setValue(user);
        addUserChangeListener();
    }

    private void addUserChangeListener() {
        // User data change listener
        mDatabase.child("users").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Users user = new Users();
                String name = "" + dataSnapshot.getValue(Users.class);
                user.setName(name);
                //String str = user.name;
                Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
                // Check for null
                if (user == null) {

                    return;
                }


                // Display newly updated name and email
                txtDetails.setText(user.name + ", " + user.email);

                // clear edit text
//                inputEmail.setText("");
//                inputName.setText("");

            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
            }
        });
    }

【问题讨论】:

  • 存在键和值
  • 在用户 json 数组中,我将名称作为键插入,将电子邮件作为键插入。如果有任何解决方案,请提供我
  • 请清楚说明您的问题:)

标签: android firebase firebase-realtime-database


【解决方案1】:

首先,firebase中没有表,是noSQL。

我建议你阅读this,它真的很简单很短。 如果您有键的路径,则可以通过将侦听器附加到它来获取该值。

在你的情况下应该是 mDatabase.child("users").child(idOfUser).child(name).addValueEventListener...

这取决于数据库的结构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2018-02-18
    • 2021-06-23
    相关资源
    最近更新 更多