Firebase - Рейтинг пользователей - Сохранить и получить - PullRequest
0 голосов
/ 22 апреля 2020

Таким образом, клиент делает запрос, торговец принимает его и нажимает кнопку, чтобы завершить запрос, когда запрос заканчивается, появляется диалоговое окно рейтинга, и клиент может отправить оценку из 5. Однако я борюсь за как сохранить этот рейтинг в базе данных Firebase, чтобы затем я мог получить его для просмотра торговцу - чтобы покупатель подтвердил рейтинг, а затем сохранил его в базе данных огня, и я мог каким-то образом отобразить его для продавца, когда он завершит запрос.

В настоящее время я заставил код работать, чтобы сохранить рейтинг клиентов как ребенка под их идентификатором пользователя, но получить его отсюда не имеет смысла (хотя это можно сделать, и я знаю, как это сделать, это путь). Вот что у меня есть:

private void requestFeedback() {
    customerDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child("Customers").child(UserID);

    AlertDialog.Builder feedback = new AlertDialog.Builder(CustomerMapActivity.this);
    View layout = null;
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    layout = inflater.inflate(R.layout.rating, null);
    final RatingBar ratingBar = (RatingBar) layout.findViewById(R.id.ratingBar);
    feedback.setTitle("Rate your Tradesman"); // maybe change this
    feedback.setMessage("Thank you for using SwiftFix, we hope you use our services soon!");

    feedback.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            Float value = ratingBar.getRating();
            Toast.makeText(CustomerMapActivity.this, "Rating is : " + value, Toast.LENGTH_LONG).show();

            // SEND RATING TO RATING 'RECENTRATING' CHILD
            // ADD COMMENT BOX AND SEND TO 'RECENTCOMMENT' CHILD

            Map userInfo = new HashMap();
            userInfo.put("Recent Rating", value);
            customerDatabase.updateChildren(userInfo);

        }
    });
    feedback.setNegativeButton("No,Thanks", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            // set rating as 0
            // set comment as 'No Feedback recieved'

        }
    });
    feedback.setCancelable(false);
    feedback.setView(layout);
    feedback.show();


}

Я надеюсь, что кто-то может мне помочь, как сохранить его, возможно, под tradesmanFoundID (который я пробовал, но говорит, что нет) или если есть способ сохранить каждый запрос под requestID с рейтингом для каждого.

Все, что я хочу сделать, - это дать покупателю возможность ввести рейтинг, сохранить его где-нибудь, а затем получить его для отображения на карте деятельности торговца после сохранения / запроса.

Вся деятельность здесь: https://pastebin.com/Fu4zCvcE, если вам нужно больше в этом разобраться. Я мог бы сохранить это как есть ... рейтинг сохранен как ребенок клиента вместе с именем, телефоном, электронной почтой и т. Д. c, но думал, что это приведет к проблемам и т. Д. c

...