Установка пользовательского ключа при добавлении данных в firebase при использовании класса модели - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь выдвинуть данные в моей базе данных с помощью модели. Однако при отправке данных я получаю уникальный идентификатор, но я хочу использовать текст с использованием newBeach.setName (beach_item.getText (). ToString ()); сохранить как ID.

Скриншоты:

База данных: вместо -LcLghuLREw86jyLHwMF я хочу использовать "sap", полученный мной через newBeach.setName (beach_item.getText (). ToString ());

enter image description here

Коды: uploadImage

    private void uploadImage() {
    if(saveUri != null)
    {
        final ProgressDialog mDialog = new ProgressDialog(getActivity());
        mDialog.setMessage("Uploading");
        mDialog.show();

        String imageName = UUID.randomUUID().toString();
        final StorageReference imageFolder = storageReference.child("image/*"+imageName);
        imageFolder.putFile(saveUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        mDialog.dismiss();
                        Toast.makeText(getActivity(), "Uploaded", Toast.LENGTH_SHORT).show();
                        imageFolder.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                            @Override
                            public void onSuccess(Uri uri) {
                                newBeach = new Beach(); 
                  /* tried using
   newBeach = new Beach(beach_item.getText().toString()); 
                  but it still push a unique key*/
                                newBeach.setDescription(beach_description.getText().toString());
                                newBeach.setImage(uri.toString());
                                newBeach.setImage(uri.toString());
                                newBeach.setName(beach_item.getText().toString());
                                newBeach.setImage2("http://i66.tinypic.com/4iy2ab.png");
                                newBeach.setImage3("http://i66.tinypic.com/4iy2ab.png");
                                newBeach.setImage4("http://i66.tinypic.com/4iy2ab.png");
                                newBeach.setPrice(beach_price.getText().toString());
                               /* newBeach.setAddress(beachAddress.getAddress().toString());
                                newBeach.setLatLng(String.format("%s, %s", beachAddress.getLatLng().latitude, beachAddress.getLatLng().longitude));
                       */
                            }
                        });
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        mDialog.dismiss();
                        Toast.makeText(getActivity(),""+e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
                        mDialog.setMessage("Uploaded " + progress + "%");
                    }
                });

    }
}

Beach.class (модель)

public class Beach {
public String name, image, image2, image3, image4, description, price, menuID, checkIn, checkOut, address, latLng;


public Beach() {
}

public Beach(String name) {
    this.name = name;
}

public Beach(String name, String image, String image2, String image3, String image4, String description, String price, String menuID, String checkIn, String checkOut, String address, String latLng) {
    this.name = name;
    this.image = image;
    this.image2 = "http://i66.tinypic.com/4iy2ab.png";
    this.image3 = "http://i66.tinypic.com/4iy2ab.png";
    this.image4 = "http://i66.tinypic.com/4iy2ab.png";
    this.description = description;
    this.price = price;
    this.menuID = menuID;
    this.checkIn = checkIn;
    this.checkOut = checkOut;
    this.address = address;
    this.latLng = latLng;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getImage2() {
    return image2;
}

public void setImage2(String image2) {
    this.image2 = image2;
}

public String getImage3() {
    return image3;
}

public void setImage3(String image3) {
    this.image3 = image3;
}

public String getImage4() {
    return image4;
}

public void setImage4(String image4) {
    this.image4 = image4;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getPrice() {
    return price;
}

public void setPrice(String price) {
    this.price = price;
}

public String getMenuID() {
    return menuID;
}

public void setMenuID(String menuID) {
    this.menuID = menuID;
}

public String getCheckIn() {
    return checkIn;
}

public void setCheckIn(String checkIn) {
    this.checkIn = checkIn;
}

public String getCheckOut() {
    return checkOut;
}

public void setCheckOut(String checkOut) {
    this.checkOut = checkOut;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getLatLng() {
    return latLng;
}

public void setLatLng(String latLng) {
    this.latLng = latLng;
}

}

1 Ответ

0 голосов
/ 13 апреля 2019

Мы можем достичь этого просто так:

DatabaseReference mRdb=FirebaseDatabase.getInstance().getReference();
String key = mRdb.push().getKey();

//set here as you want
key = "sap";

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