2016-05-27 2 views

Antwort

66

Aufruf push() erzeugt einen Schlüssel für Sie.

Wenn Sie stattdessen child() verwenden, können Sie den Schlüssel/Pfad selbst bestimmen.

ref.child("Victor").setValue("setting custom key when pushing new data to firebase database"); 
+3

folgt, warum wird dies nicht als Antwort markiert ... ?? –

+5

weil Victor Davis sich nicht darum kümmert – user3734429

+1

verdient markiert zu sein ... –

1

Sie können einen benutzerdefinierten Schlüssel setValue() erstellen auch wenn die Wurzel viele Kinder enthält beispielsweise, wenn ‚Benutzer‘ ist die Wurzel und die Anwendern als Schlüssel mit E-Mail hinzuzufügen, wird es sein wie diese

firebase.child("firebase url").child("Users").child("user_1 email").setValue(...) 

firebase.child("firebase url").child("Users").child("user_2 email").setValue(...) 

etc

Hoffnung hilft dies.

3
 String key="1234567sdfsf8"; 
     //custom object 
     User user=new User(); 
     DatabaseReference mDatabase; 
     mDatabase = FirebaseDatabase.getInstance().getReference(); 
     mDatabase.child("Users").child(key).setValue(user); 
+0

Lebensretter. vielen Dank – shinta

0

Wenn Sie FirebaseUI verwenden:

private static final CollectionReference usersCollection = FirebaseFirestore.getInstance().collection("users"); 

User user = new User("MyUsername", "MyPictureUrl"); 
String userKey = "1234567sdfsf8"; 

usersCollection.document(userKey).set(user); //MAGIC LINE 
0

Nur für den Austausch von Wissen.

, wenn Sie mit Feuer scharf, können Sie die benutzerdefinierten Schlüssel erstellen, wie

  IFirebaseConfig config = new FirebaseConfig 
      { 
       AuthSecret = "SecretKey", 
       BasePath = "https://abc.firebaseio.com/", 
       Host = "abc.firebaseio.com/" 
      }; 
      IFirebaseClient client = new FirebaseClient(config); 

      var obj = new Users 
      { 
       FirstName = "test", 
       MiddleName = "user", 
       LastName = "xyz" 

      }; 

      SetResponse response = client.SetAsync("Profile", "YourID");//you can use Set() as well 
      response = client.SetAsync("Profile/YourID", obj);//you can use Set() as well