добавить данные, которые не отображаются в Firebase Realtime - PullRequest
1 голос
/ 20 июня 2020

На самом деле я пытаюсь загрузить изображение в Firestorage, а затем добавить URL-адрес в базу данных Firebase. мой код работает нормально и успешно загружает выбранное изображение в хранилище с указанием c userId. Моя проблема заключается в том, что при добавлении данных в базу данных он выполняется успешно, как показано в logcat, но когда я проверяю в базе данных, добавленные данные не отображаются, я проверил разрешение как ну роль безопасности Firebase, она настроена правильно, но все же добавление данных в узлы не отображается, есть ли ошибка в моем коде или что?

private void UpoloadImageTofirebaseStorage() {
    user_id = mAuth.getCurrentUser().getUid();
    mStorageRef = FirebaseStorage.getInstance().getReference("users").child(user_id);
    if (imagePath != null) {
        //   final StorageReference imageRef = mStorageRef.child("users").child(user_id);
        UploadTask uploadTask = mStorageRef.putFile(imagePath);
        uploadTask.addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.i(TAG, "Store image in storage:failure", e);
            }
        });
        uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Task<Uri> downloadUrl = mStorageRef.getDownloadUrl();
                Log.i(TAG,"Image Added "+ downloadUrl);
                downloadUrl.addOnSuccessListener(new OnSuccessListener<Uri>() {
                    @Override
                    public void onSuccess(Uri uri) {
                        profileImageURL = uri.toString();
                        Log.i(TAG,"File Location"+  profileImageURL);
                        SaveUserToFirebaseDatabase( profileImageURL);

                    }
                });

            }
        });
    }
} 


  

// add user info to datadase
private void SaveUserToFirebaseDatabase(String profileImageURL)
        {
           user_id = mAuth.getCurrentUser().getUid();
            CreationDate = new  SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(new Date());
            MyUsers user = new MyUsers(FullName,Password,EmailAddress,Gender, profileImageURL,CreationDate);
            //add user to profile & all
            DatabaseReference  mDatabase= FirebaseDatabase.getInstance().getReference("users/profile").child(user_id);
         
            mDatabase.setValue(user).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.i(TAG," mDatabase unable to add data"+ e);
                }
            });
         
                   
            Toast.makeText( UserSignup.this, "your information Added Successfully ", Toast.LENGTH_LONG).show();
        }

вот что появляется в logcat после запуска кода

все добавленные данные появляются в logcat, но по-прежнему не отображаются как узел в firebase

1 Ответ

2 голосов
/ 20 июня 2020

Возможно, вам не хватает следующего метода push(). Попробуйте это:

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