Таким образом, клиент делает запрос, торговец принимает его и нажимает кнопку, чтобы завершить запрос, когда запрос заканчивается, появляется диалоговое окно рейтинга, и клиент может отправить оценку из 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