трудности с базой данных Firebase. Неверный путь к базе данных - PullRequest
0 голосов
/ 28 июня 2018

struct db Причина: com.google.firebase.database.DatabaseException: Неверный путь к базе данных Firebase: https://eleicoes -f6d73.firebaseio.com / . Пути к базе данных Firebase не должны содержать '.', '#', '$', '[' Или ']' на br.com.eleicoes.eleicoes.MainActivity. (MainActivity.java:37) 06-28 20: 16: 09.973 28933-28933 / br.com.eleicoes.eleicoes E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: 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);
}


}

журнал ошибок

Ответы [ 3 ]

0 голосов
/ 29 июня 2018

изменение от

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

до

  DatabaseReference reference = database.getReference();
0 голосов
/ 29 июня 2018

Как предполагает Дэн, все верно, вы ссылаетесь на главный узел дерева вашей базы данных, но в вашем ref.addValueEventListener вы пытаетесь получить сообщение ни от какого ребенка

если вы хотите получить, например, первое, что вы можете сделать это

сначала исправьте вашу ссылку, как вы говорите

от

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

до

DatabaseReference reference = database.getReference();

, а затем в своей ссылке просто назовите, какой ребенок вы хотите получить значение, например, значение "1" из 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) {

        }
    });

вы можете изменить значение с ref.child("lula")... на ref.child("lula2")..., если хотите получить значение lula2

РЕДАКТИРОВАТЬ:

Поскольку lula не является строкой в ​​вашей базе данных, просто замените ее на

 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 голосов
/ 29 июня 2018

вы не можете поместить в узел базы данных https://eleicoes -f6d73.firebaseio.com / это ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...