in database/app/src/main/java/com/google/firebase/quickstart/database/java/NewPostFragment.java [56:106]
private void submitPost() {
final String title = binding.fieldTitle.getText().toString();
final String body = binding.fieldBody.getText().toString();
// Title is required
if (TextUtils.isEmpty(title)) {
binding.fieldTitle.setError(REQUIRED);
return;
}
// Body is required
if (TextUtils.isEmpty(body)) {
binding.fieldBody.setError(REQUIRED);
return;
}
// Disable button so there are no multi-posts
setEditingEnabled(false);
Toast.makeText(getContext(), "Posting...", Toast.LENGTH_SHORT).show();
final String userId = getUid();
mDatabase.child("users").child(userId).addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// Get user value
User user = dataSnapshot.getValue(User.class);
if (user == null) {
// User is null, error out
Log.e(TAG, "User " + userId + " is unexpectedly null");
Toast.makeText(getContext(),
"Error: could not fetch user.",
Toast.LENGTH_SHORT).show();
} else {
// Write new post
writeNewPost(userId, user.username, title, body);
}
setEditingEnabled(true);
NavHostFragment.findNavController(NewPostFragment.this)
.navigate(R.id.action_NewPostFragment_to_MainFragment);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.w(TAG, "getUser:onCancelled", databaseError.toException());
setEditingEnabled(true);
}
});
}