2016-04-09 9 views
1

Szenario ist: JSON-Objekt werden von einem Rest API hochgeladen und von einer Android-App zugegriffen werden.Beziehen der eindeutigen Push-ID in Firebase

Isuue: Bei jedem Upload wird das Objekt unter eindeutiger Push-ID gespeichert. Dies ist variabel und am Empfängerende nicht bekannt. Der vollständige Pfad ist nicht bekannt.

In bestimmtem Teil des Codes:

mRootRef = new Firebase("https://solvewa2y.firebaseio.com"); 
    Firebase messagesRef=mRootRef.child(postId); 

Ich brauche postID mit etwas zu ersetzen, so dass ich das Objekt gespeichert bekommen kann, unabhängig von der eindeutigen ID oder eine Art und Weise der eindeutigen Kennung jedes Mal

+0

Wenn der Schlüssel automatisch generiert ist auf einem anderen Client gibt es keine magische Art und Weise, dass der Android-Client es wissen können. Sie müssen also entweder auf einem höheren Niveau hören, z.B. mRootRef.addChildEvenListener() 'oder verwenden Sie vorhersehbare Schlüssel. –

+0

Dies ist ein [XY-Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378). Mitglieder können viel prägnantere und relevantere Antworten veröffentlichen, wenn Sie mit der Beschreibung des Anwendungsfalls, der Einschränkungen und der Ansätze beginnen, die Sie bereits ausgeschlossen haben, und nicht nur die vorgeschlagene Lösung (magisch eine ID zwischen zwei Clients teilen). – Kato

Antwort

6
zu erhalten

Die Antwort ist wirklich einfach. Ich kämpfte für eine Lösung mit Ereignis-Listenern, bis ich diese Antwort gefunden here

//Create new reference  calling push creates the unique key in firebase database but has no data yet 
DatabaseReference mypostref = databaseRef.push(); 

//Use the new reference to add the data 
mypostref.setValue(data); 

//Call getKey on the ref - you must have 'key' in your data class 
String mypostref.getKey());