Данные не могут быть сохранены в базе данных в реальном времени - PullRequest
0 голосов
/ 08 июня 2019

Я ввожу имя пользователя и номер телефона, указав в этом номере телефона (mnum) дочернего элемента «Пользователи» и другого ребенка.

Я поместил addOnCompleteListener, который сообщает мне, если задачауспешно или нет.

Это всегда говорит о том, что задача не выполнена, и, когда я добавил тост "Ошибка сети", он показывает мне сетевую ошибку, когда я пытаюсь добавить данные в базу данных

 private void AddAcc(final String nam, final String mnum)
  {
    final DatabaseReference Rootref;
    Rootref= FirebaseDatabase.getInstance().getReference();

    Rootref.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (!(dataSnapshot.child("Users").child(mnum).exists())) {
                HashMap<String, Object> userDataMap = new HashMap<>();
                userDataMap.put("Name", nam);
                userDataMap.put("Phone No.", mnum);
                Rootref.child("Users").child(mnum).updateChildren(userDataMap)
                        .addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {

                                if (task.isSuccessful()) {
                                    Toast.makeText(SignUp.this, "Data Stored", Toast.LENGTH_SHORT).show();
                                    loadingBar.dismiss();
                                } else {
                                    Toast.makeText(SignUp.this, "Network Error", Toast.LENGTH_SHORT).show();
                                    loadingBar.dismiss();
                                }
                            }
                        });


            } else {
                loadingBar.dismiss();
                Toast.makeText(SignUp.this, "Number is Already Present", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

Независимо от того, что я делаю, всегда всплывает тост "Ошибка сети"

1 Ответ

0 голосов
/ 08 июня 2019

Это период в «№ телефона», Firebase считает этот токен недействительным.Будущую ссылку вы можете вызвать task.getException ();и это даст вам больше причин, почему это не удалось.Ред.Надеюсь, что все проясняется для вас, если не стесняйтесь спрашивать.

W / RepoOperation: updateChildren at / Users / mnum fail: DatabaseError: Неверный токен в пути W / Exception: com.google.firebase.database.DatabaseException: ошибка базы данных Firebase: неверный токен в пути на com.google.firebase.database.DatabaseError.toException (com.google.firebase: firebase-database @@ 17.0.0: 234) на com.google.firebase.database.core.utilities.Utilities $ 1.onComplete (com.google.firebase: firebase-database @@ 17.0.0: 243) на com.google.firebase.database.core.Repo $ 6.run (com.google.firebase: база данных firebase @@ 17.0.0: 404) на android.os.Handler.handleCallback (Handler.java:751) на android.os.Handler.dispatchMessage (Handler.java:95) на android.os.Looper.цикл (Looper.java:154) в android.app.ActivityThread.main (ActivityThread.java:6196) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.запустить (ZygoteInit.java:888) на com.android.internal.os.ZygoteInit.mАйн (ZygoteInit.java:778)

private void AddAcc(final String nam, final String mnum)
  {
    final DatabaseReference Rootref;
    Rootref= FirebaseDatabase.getInstance().getReference();

    Rootref.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (!(dataSnapshot.child("Users").child(mnum).exists())) {
                HashMap<String, Object> userDataMap = new HashMap<>();
                userDataMap.put("Name", nam);
                userDataMap.put("Phone No.", mnum); //Change "Phone No." to "Phone No"
                Rootref.child("Users").child(mnum).updateChildren(userDataMap)
                        .addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {

                                if (task.isSuccessful()) {
                                    Toast.makeText(SignUp.this, "Data Stored", Toast.LENGTH_SHORT).show();
                                    loadingBar.dismiss();
                                } else {
                                    Toast.makeText(SignUp.this, "Network Error", Toast.LENGTH_SHORT).show();
                                    loadingBar.dismiss();
                                }
                            }
                        });


            } else {
                loadingBar.dismiss();
                Toast.makeText(SignUp.this, "Number is Already Present", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

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