كيفية انشاء صفحة لتحديث بيانات المستخدم داخل برنامج الاندرويد ستوديو
كما اخبرناكم سابقا اننا سوف نقوم بإنشاء صفحة لتحديث بيانات المستخدم داخل اندرويد ستوديو بحيث انه يقوم المستخدم بتحديث بياناته و عند الضغط على ارسال او تحديث بياناتي يتم تحديث البيانات الخاصة به داخل برنامج الاندرويد ستوديو وداخل قاعدة البيانات التي ترتبط بها الحساب الخاص به في المقالات السابقة قمنا بعرض البيانات التي قام المستخدم بتسجيلها داخل صفحة معلوماتي او معلومات الحساب و باذن الله تعالى سوف تشاهدون في نهايه سلسلة الفايربيز تطبيق رائع جدا يحتوي على Recycler View ريسايكلر فيو او ارسال بياناتهم بين الصفحات وافكار جميله جدا لذلك لا نريد ان نطيل عليكم وارجوا ان ينال هذا الشرح على رضاكم واعجابكم وارجو ان تترك لنا تعليق لطيف منك , وحاول نشر المقال بين اصدقائكم لكي يستفيد الجميع وهذا يعد أكبر حافز ودعم لنا
صفحة تحديث بيانات مربوطة بالفاير بيز
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.start(SettingsActivity.this);
String name = binding.settingName.getText().toString().trim();
String phone = binding.settingPhone.getText().toString().trim();
if (name.isEmpty() || phone.isEmpty()) {
Toast.makeText(this, "من فضلك ادخل البيانات بشكل صحيح", Toast.LENGTH_SHORT).show();
binding.settingEmail.setError("ادخل البيانات");
binding.settingPhone.setError("ادخل البيانات");
return;
}
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("name", name);
hashMap.put("phone", phone);
firestore.collection("upload UserData").document(uid).update(hashMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(SettingsActivity.this, "تم رفع بياناتك بنجاح", Toast.LENGTH_SHORT).show();
} else {
String Errormessage = task.getException().getLocalizedMessage();
Log.i(TAG, "onComplete: " + Errormessage);
Toast.makeText(SettingsActivity.this, Errormessage, Toast.LENGTH_SHORT).show();
}
}
});
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri imageURI = result.getUri();
binding.settingImage.setImageURI(imageURI);
UploadprofileImage(imageURI);
prograsbar_start();
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
Toast.makeText(this, error.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
}
}
اقرء المزيد
private void UploadprofileImage(Uri imageURI) {
storageReference.child("ProfileImages").child(uid).putFile(imageURI).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()) {
Toast.makeText(SettingsActivity.this, "تم رفع الصورة بنجاح", Toast.LENGTH_SHORT).show();
getprofileimage();
} else {
String ErrorMessage = task.getException().getLocalizedMessage();
Log.i(TAG, "onComplete: " + ErrorMessage);
Toast.makeText(SettingsActivity.this, ErrorMessage, Toast.LENGTH_SHORT).show();
}
}
});
}
private void getprofileimage() {
storageReference.child("ProfileImages").child(uid).getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
String imageurl = task.getResult().toString();
Log.i(TAG, "onComplete: " + imageurl);
updateprofileimage(imageurl);
} else {
String ErrorMessage = task.getException().getLocalizedMessage();
Log.i(TAG, "onComplete: " + ErrorMessage);
Toast.makeText(SettingsActivity.this, ErrorMessage, Toast.LENGTH_SHORT).show();
}
}
});
}
private void updateprofileimage(String imageurl) {
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("imageurl", imageurl);
firestore.collection("upload UserData").document(uid).update(hashMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(SettingsActivity.this, "تم رفع بياناتك بنجاح", Toast.LENGTH_SHORT).show();
prograsbar_stop();
} else {
String Errormessage = task.getException().getLocalizedMessage();
Log.i(TAG, "onComplete: " + Errormessage);
Toast.makeText(SettingsActivity.this, Errormessage, Toast.LENGTH_SHORT).show();
}
}
});
}
رابط المشروع كامل على Github
شاهد ايضا
- شرح كيفية ربط تطبيقك بالفايربيز "Firebase" بطريقة يدوية وتلقائية
- كل ما تريد معرفتة عن خدمة فايربيز "Firebase" واهميتها في تطبيقك
- كيفية حفظ بيانات المستخدم في قواعد البيانات داخل الاندرويد ستوديو Firebase with Firestore
- كيفية عرض معلومات المستخدم داخل صفحة الاعدادات "فاير بيز" - أندرويد ستوديو
- كيفية انشاء صفحة لتحديث بيانات المستخدم داخل برنامج الاندرويد ستوديو
- انشاء صفحة لاضافة طلبات make order بإستخدام "فايربيز" ( أندرويد ستوديو )
- كيفية عرض الطلبات التي قام بها المستخدم داخل Recyclerview في الاندرويد ستوديو
- عرض تفاصيل الطلب الذي قام بة المستخدم في برنامج الاندرويد ستوديو | firebase with android studio
- طريقة عمل حساب للعميل وحساب للمندوب بخصائص معينه - استخدام Firebase داخل android studio
- اضافة بيانات للطلب من طرف المندوب - استخدام الفايربيز داخل الاندرويد ستوديو android studio
- انشاء صفحة للطبات المقبولة من طرف المندوب وربطها بالفاير بيز داخل الاندرويد ستوديو
- جعل المندوب قادر على قبول الطلب وكتابة ملاحظات والانتهاء منه - تطبيق "فايربيز" بألاندرويد ستوديو