struct db Auslöser: com.google.firebase.database.DatabaseException: Ungültige Firebase-Datenbank Pfad: https://eleicoes-f6d73.firebaseio.com/. Firebase-Datenbankpfade dürfen nicht '.', '#', '$', '[' Oder ']' Enthalten. at br.com.eleicoes.eleicoes.MainActivity. (MainActivity.java:37) 06-28 20: 16: 09.973 28933-28933 / br.com.eleicoes.eleicoes E / Android Laufzeit: FATAL EXCEPTION: main

public class MainActivity extends AppCompatActivity {
TextView resposta;
Button bt1;
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("https://eleicoes-f6d73.firebaseio.com/");

private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    mAuth = FirebaseAuth.getInstance();
    // [START initialize_auth]
    mAuth = FirebaseAuth.getInstance();
    // [END initialize_auth]
}

// [START on_start_check_user]
@Override
public void onStart() {
    super.onStart();
    resposta = (TextView) findViewById(R.id.resposta);
    bt1 = (Button) findViewById(R.id.bt1);
    // Check if user is signed in (non-null) and update UI accordingly.
    FirebaseUser currentUser = mAuth.getCurrentUser();


    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String post = dataSnapshot.getValue(String.class);

            resposta.setText(post);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}


// [END on_start_check_user]

private void signInAnonymously() {

    // [START signin_anonymously]
    mAuth.signInAnonymously()
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information

                        FirebaseUser user = mAuth.getCurrentUser();

                    } else {
                        // If sign in fails, display a message to the user.

                        Toast.makeText(MainActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();

                    }


                }
            });
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}


}

Fehlerprotokoll

0
Dan Even 28 Juni 2018 im 23:59

3 Antworten

Beste Antwort

Wie Dan vorschlägt, verweisen Sie auf den Hauptbaumknoten Ihrer Datenbank, aber in Ihrem ref.addValueEventListener versuchen Sie, den Beitrag von keinem Kind zu erhalten

Wenn Sie zum Beispiel den ersten bekommen möchten, können Sie dies tun

Korrigieren Sie zuerst Ihre Referenz, wie Sie sagen

Von

 DatabaseReference reference = database.getReference("https://eleicoesf6d73.firebaseio.com/");

Zu

DatabaseReference reference = database.getReference();

Und dann rufen Sie in Ihrem Ref einfach an, welches Kind Sie den Wert erhalten möchten, zum Beispiel den Wert "1" von lula

ref.child("lula").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String post = dataSnapshot.getValue(String.class);

            resposta.setText(post);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

Sie können von ref.child("lula")... zu ref.child("lula2")... wechseln, wenn Sie den lula2-Wert erhalten möchten

BEARBEITEN:

Da lula keine Zeichenfolge in Ihrer Datenbank ist, ändern Sie dies einfach

 ref.child("lula").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                int post = dataSnapshot.getValue(Integer.class);

                resposta.setText(String.valueOf(post));
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
0
Gastón Saillén 28 Juni 2018 im 23:48

Sie können nicht in den Knoten der Datenbank https://eleicoes-f6d73.firebaseio.com/ Das ist der Fehler.

1
Mohammad Sommakia 28 Juni 2018 im 21:37

Wechsel von

  DatabaseReference reference = database.getReference("https://eleicoesf6d73.firebaseio.com/");

Zu

  DatabaseReference reference = database.getReference();
0
Dan Even 28 Juni 2018 im 22:07