Найдены конфликтующие получатели имени: isFocusable - PullRequest
0 голосов
/ 01 марта 2019

при отправке изображения в систему чата происходит сбой, и отображается эта ошибка:

 Found conflicting getters for name: isFocusable

Я могу сохранить изображение в хранилище Firebase, но не могу сохранить его в базе данных реального времени Firebase.

@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
        Uri imageUri = data.getData();

        databaseReference = FirebaseDatabase.getInstance().getReference().child("Chats");

        final StorageReference fileReference = storageReference.child(System.currentTimeMillis()
                + "." + getFileExtension(imageUri));

        final String id = firebaseUser.getUid();
        final String key = firebaseDatabase.getReference("Chats").push().getKey();

        mUploadTask = fileReference.putFile(imageUri);

        mUploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
            @Override
            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                if (!task.isSuccessful()) {
                    throw task.getException();
                }
                return fileReference.getDownloadUrl();
            }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {

                if (task.isSuccessful()) {
                    String downloadUrl = task.getResult().toString();

                    final HashMap<String, Object> messageMap = new HashMap();
                    messageMap.put("Key", key);
                    messageMap.put("Sender", id);
                    messageMap.put("Receiver", userid);
                    messageMap.put("Message", downloadUrl);
                    messageMap.put("isseen", false);
                    messageMap.put("time", time);
                    messageMap.put("type", "image");
                    System.out.println("haha chat " + downloadUrl);

                    databaseReference.child(key).updateChildren(messageMap);

                }
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(getApplicationContext(), "" + e, Toast.LENGTH_LONG).show();
                System.out.println("haha chat e " + e);
            }
        });

    }
}

это моя структура базы данных

эта база данных будет сгенерирована, когда пользователи вводят текст и отправляют, если пользователи отправляют изображение, структура базы данных почти такая же, только«type» изменит его на изображение, а «Message» не будет хранить текст.Это магазин URI, как

https://firebasestorage.googleapis.com/v0/b/final-year-project-51c9a.appspot.com/o/Chat%20Images%2F1551454994072.jpg?alt=media&token=6ef744f8-0a7c-42a3-b5ba-9ea660a0ec76

Модель класса

import android.support.annotation.NonNull;

private String Key, Sender, Receiver, Message, time, type;
private boolean isseen;

public Chat(String Key, String Sender, String Receiver, String Message, String time, boolean isseen,String type) {
    this.Key = Key;
    this.Sender = Sender;
    this.Receiver = Receiver;
    this.Message = Message;
    this.isseen = isseen;
    this.time = time;
    this.type=type;

}

public Chat() {

}

public String getKey() {
    return Key;
}

public String getSender() {
    return Sender;
}

public String getReceiver() {
    return Receiver;
}

public String getMessage() {
    return Message;
}

public boolean isIsseen() {
    return isseen;
}

public String getTime() {
    return time;
}

public String getType() {
    return type;
}

public void setTime(String time) {
    this.time = time;
}


@Override
public int compareTo(@NonNull Chat o) {
    if (getTime() == null || o.getTime() == null)
        return 0;

    return o.getTime().compareTo(getTime());
}

Может кто-нибудь помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 02 марта 2019

Попробуйте передать эти данные другому методу и добавить их в базу данных.Должно работать

...