2017-10-14 4 views
2

I Probe durch Tutorial ‚https://firebase.google.com/docs/database/android/start/?hl=ko‘ für Firebase Echtzeit-DatenbankFirebase Realtime databae nicht funktioniert, setValue

gemacht, aber ich kann keine Daten nach onDataChanged ‚EventValueListner‘

sehen Können Sie erklären, warum das so ist?

FirebaseDatabase database = FirebaseDatabase.getInstance(); 
DatabaseReference myRef = database.getReference("message"); 

myRef.setValue("Hello, World!"); 
// Read from the database 
myRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     // This method is called once with the initial value and again 
     // whenever data at this location is updated. 
     String value = dataSnapshot.getValue(String.class); 
     Log.d("TAG", "Value is: " + value); 
    } 

    @Override 
    public void onCancelled(DatabaseError error) { 
     // Failed to read value 
     Log.w("TAG", "Failed to read value.", error.toException()); 
    } 
}); 

Es ist mein Code.

Was ist meine Schuld?

+0

Ich sehe nicht sofort, was mit Ihrem Code falsch ist. Sehen Sie Meldungen auf der Logcat-Ausgabe? –

+0

Nachdem ich den exakt gleichen Code in [dieser Frage] gesehen habe (https://stackoverflow.com/questions/46742714/firebase-realtimedatabase-is-not-working-now), frage ich mich, ob Sie einfach keine Netzwerkverbindung haben . Das ist der einzige Fall, an den ich schnell denken kann. Dann werden weder 'onDataChange()' noch 'onCancelled()' aufgerufen. –

Antwort

0

In diesem Beispiel werden neue Benutzerdaten in Firebase db eingefügt.

FirebaseDatabase database; 
    DatabaseReference usersTable; 
    database = FirebaseDatabase.getInstance(); 
    usersTable = database.getReference("Users"); 
    /*we work here */ 
    usersTable.addValueEventListener(new ValueEventListener() { 
        @Override 
        public void onDataChange(DataSnapshot dataSnapshot) { 

         progressDialog.dismiss(); 
         if (dataSnapshot.child(phoneEditText.getText().toString()).exists()) { 

          Toast.makeText(SignUp.this, "Number already register", Toast.LENGTH_SHORT).show(); 
         }else{ 
          Users users = new Users(nameEditText.getText().toString(),passwordEditTex.getText().toString(),phoneEditText.getText().toString()); 
          usersTable.child(phoneEditText.getText().toString()).setValue(users); 
          Toast.makeText(SignUp.this, "Signup Sucessfully", Toast.LENGTH_SHORT).show(); 
          finish(); 
         } 


        } 

        @Override 
        public void onCancelled(DatabaseError databaseError) { 

        } 
       }); 

sample database

hoffe, dies wird Ihnen helfen,

+0

Ich habe diesen Code versucht, funktioniert aber nicht. –

+0

Welchen Fehler haben Sie? –

+0

Es tut mir leid. Ich fand eine Lösung dafür. Es ist ein Problem für den Standort von China. –

Verwandte Themen