use of com.google.firebase.database.DatabaseReference in project MadMax by deviz92.
the class User method joinGroup.
public void joinGroup(String groupID, String inviterID) {
final DatabaseReference databaseReference = FirebaseUtils.getDatabaseReference();
final String currentUID = this.getID();
// Aggiungo gruppo alla lista gruppi dello user
databaseReference.child("users").child(currentUID).child("groups").push();
databaseReference.child("users").child(currentUID).child("groups").child(groupID).setValue("true");
// Aggiungo user (con sottocampi admin e timestamp) alla lista membri del gruppo
databaseReference.child("groups").child(groupID).child("members").push();
databaseReference.child("groups").child(groupID).child("members").child(currentUID).push();
databaseReference.child("groups").child(groupID).child("members").child(currentUID).child("admin").setValue(false);
databaseReference.child("groups").child(groupID).child("members").child(currentUID).push();
String timestamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new java.util.Date());
databaseReference.child("groups").child(groupID).child("members").child(currentUID).child("timestamp").setValue(timestamp);
// aggiunto da riky
databaseReference.child("groups").child(groupID).child("members").child(currentUID).push();
databaseReference.child("groups").child(groupID).child("members").child(currentUID).child("deleted").setValue(false);
// aggiungo l'invitante agli amici se non lo è già
if (!userFriends.containsKey(inviterID)) {
// todo aggiungere l'invitato tra gli amici dell'invitante
addFriend(inviterID);
}
// Incremento il numero di partecipanti
databaseReference.child("groups").child(groupID).child("numberMembers").runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Integer numberMembers = mutableData.getValue(Integer.class);
if (numberMembers == null) {
return Transaction.success(mutableData);
}
// Set value and report transaction success
mutableData.setValue(numberMembers + 1);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
// Transaction completed
Log.d(TAG, "postTransaction:onComplete:" + databaseError);
}
});
}
use of com.google.firebase.database.DatabaseReference in project MadMax by deviz92.
the class FirebaseUtils method addComment.
/*
END EVENT
*/
/*
COMMENT
*/
public String addComment(Comment comment, Boolean expense) {
Log.d(TAG, "addComment");
final String ID = databaseReference.child("comments").push().getKey();
DatabaseReference commentReference = databaseReference.child("comments").child(ID);
commentReference.setValue(comment);
if (expense) {
DatabaseReference expenseReference = databaseReference.child("expenses").child(comment.getExpenseID());
expenseReference.child("comments").child(ID).setValue(true);
} else {
DatabaseReference proposedExpensesReference = databaseReference.child("proposedExpenses").child(comment.getExpenseID());
proposedExpensesReference.child("comments").child(ID).setValue(true);
}
return ID;
}
use of com.google.firebase.database.DatabaseReference in project quickstart-android by firebase.
the class PostListFragment method onActivityCreated.
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Set up Layout Manager, reverse layout
mManager = new LinearLayoutManager(getActivity());
mManager.setReverseLayout(true);
mManager.setStackFromEnd(true);
mRecycler.setLayoutManager(mManager);
// Set up FirebaseRecyclerAdapter with the Query
Query postsQuery = getQuery(mDatabase);
mAdapter = new FirebaseRecyclerAdapter<Post, PostViewHolder>(Post.class, R.layout.item_post, PostViewHolder.class, postsQuery) {
@Override
protected void populateViewHolder(final PostViewHolder viewHolder, final Post model, final int position) {
final DatabaseReference postRef = getRef(position);
// Set click listener for the whole post view
final String postKey = postRef.getKey();
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Launch PostDetailActivity
Intent intent = new Intent(getActivity(), PostDetailActivity.class);
intent.putExtra(PostDetailActivity.EXTRA_POST_KEY, postKey);
startActivity(intent);
}
});
// Determine if the current user has liked this post and set UI accordingly
if (model.stars.containsKey(getUid())) {
viewHolder.starView.setImageResource(R.drawable.ic_toggle_star_24);
} else {
viewHolder.starView.setImageResource(R.drawable.ic_toggle_star_outline_24);
}
// Bind Post to ViewHolder, setting OnClickListener for the star button
viewHolder.bindToPost(model, new View.OnClickListener() {
@Override
public void onClick(View starView) {
// Need to write to both places the post is stored
DatabaseReference globalPostRef = mDatabase.child("posts").child(postRef.getKey());
DatabaseReference userPostRef = mDatabase.child("user-posts").child(model.uid).child(postRef.getKey());
// Run two transactions
onStarClicked(globalPostRef);
onStarClicked(userPostRef);
}
});
}
};
mRecycler.setAdapter(mAdapter);
}
use of com.google.firebase.database.DatabaseReference in project Robot-Scouter by SUPERCILEX.
the class ScoutTemplateSheet method getTemplateKey.
private void getTemplateKey() {
TeamHelper teamHelper = TeamHelper.parse(getArguments());
mTemplateKey = teamHelper.getTeam().getTemplateKey();
if (TextUtils.isEmpty(mTemplateKey)) {
if (!Constants.sFirebaseScoutTemplates.isEmpty()) {
mTemplateKey = Constants.sFirebaseScoutTemplates.get(0).getKey();
teamHelper.updateTemplateKey(mTemplateKey);
return;
}
DatabaseReference newTemplateRef = FIREBASE_SCOUT_TEMPLATES.push();
mTemplateKey = newTemplateRef.getKey();
FirebaseCopier.copyTo(Constants.sDefaultTemplate, newTemplateRef);
teamHelper.updateTemplateKey(mTemplateKey);
UserHelper.getScoutTemplateIndicesRef().child(mTemplateKey).setValue(true);
for (int i = 0; i < Constants.sFirebaseTeams.size(); i++) {
Team team = Constants.sFirebaseTeams.getObject(i);
String templateKey = team.getTemplateKey();
if (TextUtils.isEmpty(templateKey)) {
team.getHelper().updateTemplateKey(mTemplateKey);
}
}
}
}
use of com.google.firebase.database.DatabaseReference in project Robot-Scouter by SUPERCILEX.
the class UserHelper method transferData.
public void transferData(String prevUid) {
if (TextUtils.isEmpty(prevUid))
return;
DatabaseReference prevTeamRef = FIREBASE_TEAM_INDICES.child(prevUid);
new FirebaseCopier(prevTeamRef, TeamHelper.getIndicesRef()) {
@Override
public void onDataChange(DataSnapshot snapshot) {
super.onDataChange(snapshot);
prevTeamRef.removeValue();
}
}.performTransformation();
DatabaseReference prevScoutTemplatesRef = getScoutTemplateIndicesRef(prevUid);
new FirebaseCopier(prevScoutTemplatesRef, getScoutTemplateIndicesRef()) {
@Override
public void onDataChange(DataSnapshot snapshot) {
super.onDataChange(snapshot);
prevScoutTemplatesRef.removeValue();
}
}.performTransformation();
}
Aggregations