Jesscy Tey
Jesscy Tey

Reputation: 3

Couldnt get child value From Firebase

I couldn't get the value from Firebase. I had 2 class, MainGarden and Resort class. I do also import google-service json file in my database. The value return is only null.

MainGarden.java

package com.example.xh3al3r.myapplication2;

import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.AsyncTask;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.util.Log;
import android.net.wifi.WifiManager;
import android.text.format.Formatter;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.ToggleButton;

import com.firebase.client.Firebase;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.iid.FirebaseInstanceId;

import javax.annotation.Nonnull;


public class MainGarden extends AppCompatActivity {
    TextView textView;
    DatabaseReference refmoisture;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_garden);
        final TextView moisturevalue = (TextView) findViewById(R.id.textView15);

        refmoisture = FirebaseDatabase.getInstance().getReference("Resort");
        refmoisture.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot resortSnapsot : dataSnapshot.getChildren()) {
                    Resort model = resortSnapsot.getValue(Resort.class);
                    moisturevalue.setText( model.getValues());
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });


    }



}

Resort.class

package com.example.xh3al3r.myapplication2;

public class Resort {
    private String Moisture;

    public Resort(){

    }


    public Resort(String moisture){

        Moisture=moisture;
    }

    public String getValues() {
        return Moisture;
    }

    public void setValues(String valuess) {

        Moisture=valuess;
    }
}

I had attached the json of my database. I wish to getValue of "Moisture" but I just can't.

database structure

Upvotes: 0

Views: 89

Answers (2)

Swati
Swati

Reputation: 28522

You can make these changes in your code

  refmoisture = FirebaseDatabase.getInstance().getReference("Resort").child("Moisture");
            refmoisture.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                  if(dataSnapshot.exist()){

                  String value = dataSnapshot.child("Value").getValue().toString();
                   moisturevalue.setText( value);
              }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

Hope It Works !!!

Upvotes: 0

Ali Ahmed
Ali Ahmed

Reputation: 2178

Use this code

    refmoisture = FirebaseDatabase.getInstance().getReference().child("Resort").child("Moisture");
    refmoisture.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                String moisture = dataSnapshot.child("Value").getValue().toString();
                moisturevalue.setText( moisture);

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

Upvotes: 1

Related Questions