How to add new child in Firebase database Android

后端 未结 6 1399
说谎
说谎 2020-12-10 05:22

I\'m trying to add a new child using the DatabaseReference in my Firebase Android app. I\'m doing:

DatabaseReference mDatabase = F         


        
相关标签:
6条回答
  • 2020-12-10 05:49

    You'll need to call push() to generate a unique key for the new data:

    DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference() 
    mDatabase.push().setValue(1);
    

    This will append the new value at the end of the list.

    By combining the push() and child() methods, you can create multiple lists of children in the database:

    mDatabase.child("numbers").push().setValue(1);
    mDatabase.child("numbers").push().setValue(53);
    mDatabase.child("numbers").push().setValue(42);
    
    mDatabase.child("letters").push().setValue("a");
    mDatabase.child("letters").push().setValue("z");
    mDatabase.child("letters").push().setValue("c");
    

    See the section append to a list of data in the Firebase documentation.

    0 讨论(0)
  • 2020-12-10 05:50

    Another post mentioned to check your gradle app file to ensure you have the latest version of the Firebase as follows:

    compile 'com.google.firebase:firebase-core:10.0.1'
    compile 'com.google.firebase:firebase-database:10.0.1'
    

    I think this should fix many issues that could arise from using older versions.

    I hope this helps.

    0 讨论(0)
  • 2020-12-10 05:52

    You cannot add anything to the database if you're not authorized. You can do one of the following:

    Either set this to your rules tab in firebase console:

    {
    "rules": {
    ".read": true,
    ".write": true
    }
    }
    

    Or you must create an authentication first (try with email/pass) and create user with

    createUserWithEmailAndPassword(email, password)
    

    and then sign in with:

    signInWithEmailAndPassword(email, password)
    

    and you need to enable sign-in with email/pass in your console as well.

    And then you can write data to your database.

    0 讨论(0)
  • 2020-12-10 05:54

    Check this sample, it may help you out.

         public class FirebaseUserDetails
        {
        private String mDisplayName;
        public String getmDisplayName() {
            return mDisplayName;
        }
    public void setmDisplayName(String mDisplayName) {
        this.mDisplayName = mDisplayName;
    }
    }
    

    Add your value to firebase database,

    FirebaseUserDetails firebaseUserDetails = new FirebaseUserDetails();
    firebaseUserDetails.setmDisplayName("arunwin");
    DatabaseReference pathReference = FirebaseDatabase.getInstance().getReference().child("contacts");
    pathReference.child("arun").setValue(firebaseUserDetails).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
    
        }
    });
    

    And your result value will be added in your database like the below,

    contacts:
        arun:
            mDisplayName:"arunwin"
    
    0 讨论(0)
  • 2020-12-10 06:07

    In my case i am adding new child like this!

    NOTE : Here i am adding new child refresh_token to my firebase database

    FirebaseDatabase.getInstance().getReference().child("RegistrationModel").child(userId)
                        .addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        Map<String, String> stringStringHashMap =(Map<String, String>) dataSnapshot.getValue();
    
                        stringStringHashMap.put("refresh_token",refreshedToken);
    
                        FirebaseDatabase.getInstance().getReference().child("RegistrationModel").child(userId)
                                .setValue(stringStringHashMap);
    
                    }
    
                    @Override
                    public void onCancelled(DatabaseError databaseError) {
    
                    }
                });
    
    0 讨论(0)
  • 2020-12-10 06:12

    Use push() before set value in the firebase. It will create new user every time when you send value in the database.

    0 讨论(0)
提交回复
热议问题