फायरबेस में मेरा डेटाबेस इस प्रारूप में है

मुझे इसकी आवश्यकता है कि यदि कोई उपयोगकर्ता लॉगिन करता है तो उस विशेष यूआईडी के लिए मुझे उसके संबंधित विभाग का नाम चाहिए। तो विभाग का नाम स्ट्रिंग के रूप में कैसे लें। मैं विभाग का नाम लाने के लिए इस कोड का उपयोग करता हूं

 String u_id=auth.getCurrentUser().getUid();
 mdatabase=FirebaseDatabase.getInstance().getReference().child("Users").child(u_id).child("department");
                         user=mdatabase.getKey();

इससे मुझे परिणाम नहीं मिलता। कृपया समाधान प्रदान करें

public class LoginPage extends AppCompatActivity {
private Button btnLogin;
private TextView ForgetText;
private EditText userText,PassText;
private String UserEmail,UserPassword;
private FirebaseAuth auth;
private FirebaseAuth.AuthStateListener mAuthlistener;
private ProgressBar progressBar;
private DatabaseReference mdatabase;
public String departmental;
//private Spinner dropdown;
Variables v=new Variables();
private String username,user;
private Intent i;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login_page);


    auth=FirebaseAuth.getInstance();
    btnLogin=(Button)findViewById(R.id.btn_login);
    ForgetText=(TextView)findViewById(R.id.textView3);
    userText=(EditText)findViewById(R.id.email2);
    PassText=(EditText)findViewById(R.id.password2);
    progressBar=(ProgressBar)findViewById(R.id.progressBar2);

    btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            SignIn();
        }
    });

    ForgetText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(LoginPage.this,ForgotPassword.class));
        }
    });
}

सार्वजनिक शून्य साइनइन () {

   UserEmail=userText.getText().toString().trim();
    UserPassword=PassText.getText().toString().trim();
if (UserEmail.isEmpty()){
Toast.makeText(LoginPage.this,"Please Enter the Email 
Id",Toast.LENGTH_LONG).show();
}
else if (UserPassword.isEmpty())
{
Toast.makeText(LoginPage.this,"Please enter Valid 
Password",Toast.LENGTH_LONG).show();
}
else {
auth.signInWithEmailAndPassword(UserEmail, UserPassword)
        .addOnCompleteListener(LoginPage.this, new 
OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                // If sign in fails, display a message to the user. If 
sign in succeeds
                // the auth state listener will be notified and logic 
to handle the
                // signed in user can be handled in the listener.
                if (!task.isSuccessful()) {
                    // there was an error

                    Toast.makeText(LoginPage.this,"Error in 
 logging!!",Toast.LENGTH_LONG).show();
                } else 

{ अगर (FirebaseAuth.getInstance ()। getCurrentUser ()। getEmail ()। बराबर (v.admin)) startActivity (नया इरादा (LoginPage.this, AdminUser.class)); और {स्ट्रिंग u_id = auth.getInstance ()। getCurrentUser ()। getUid ();

                       mdatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(u_id).child("department");
                        ValueEventListener eventListener = new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                String  department = (String) dataSnapshot.getValue();

                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {}
                        };
                        mdatabase.addListenerForSingleValueEvent(eventListener);
                        Toast.makeText(LoginPage.this,u_id,Toast.LENGTH_LONG).show();
                        Toast.makeText(LoginPage.this,departmental,Toast.LENGTH_LONG).show();
                        /*i = new Intent(LoginPage.this, LoggedIn.class);
                        i.putExtra("hello_user",department);
                        startActivity(i);*/
                    }

                    Toast.makeText(LoginPage.this, "Logged In", Toast.LENGTH_LONG).show();
                   }
            }
        });

}

}
@Override
public void onBackPressed() {
    super.onBackPressed();
}

}

1
user7897132 9 जून 2017, 17:13

1 उत्तर

सबसे बढ़िया उत्तर

कृपया इस कोड का प्रयोग करें:

String u_id = auth.getCurrentUser().getUid();
mdatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(u_id).child("department");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String department = (String) dataSnapshot.getValue();
        Log.d("TAG", department);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
mdatabase.addListenerForSingleValueEvent(eventListener);

आशा है कि इससे सहायता मिलेगी।

1
Alex Mamo 9 जून 2017, 17:17
त्रुटि देता है: - बच्चे में तर्क 'पथस्ट्रिंग' के लिए शून्य पास नहीं कर सकता ()
 – 
user7897132
9 जून 2017, 17:49
इसका अर्थ है कि आपके mdatabase में, child() विधियों में से एक तर्क शून्य है। क्या आपने u_id की जांच की है? क्या यह null है? यह एकमात्र ऐसा है जो null हो सकता है।
 – 
Alex Mamo
9 जून 2017, 17:53
यह शून्य नहीं है। मैंने इसे चेक किया है। असल में मुझे इस विभाग स्ट्रिंग को किसी अन्य गतिविधि में पास करना है, यह शून्य दिखाता है
 – 
user7897132
9 जून 2017, 18:04
अब मैंने जाँच की है कि स्ट्रिंग विभाग शून्य है। यह उस विशेष उपयोगकर्ता का मूल्य नहीं लाता है
 – 
user7897132
9 जून 2017, 18:07
यदि u_id में not null और जैसा कि आप कहते हैं department रिक्त है, तो दोनों जगहों पर वर्तनी, अपने डेटाबेस और अपने कोड की जांच करें। कोड निश्चित रूप से काम करना चाहिए।
 – 
Alex Mamo
9 जून 2017, 18:09