Last active
December 21, 2017 11:45
-
-
Save RBonaventure/bf6182296718867a43eb93e13d8d1daa to your computer and use it in GitHub Desktop.
firestore-like
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* @method Permet l'ajout d'un document à la collection 'like' | |
* Reference path : /resources/{resourceId}/likes/{uniqueLikeId} | |
*/ | |
public void like() { | |
Map<String, Date> like = new HashMap<>(); | |
like.put("date", new Date()); | |
// mRef est la référence d'un collaborateur que l'on récupère via https://gist.github.com/RBonaventure/12283d6115d9960421470dde949acc41#file-firestore-fetch-data-java-L8 | |
mRef.collection(FirestoreCollections.LIKES).document(App.getGUID()) | |
.set(like).addOnCompleteListener(new OnCompleteListener<Void>() { | |
@Override | |
public void onComplete(@NonNull Task<Void> task) { | |
if(!task.isSuccessful()) { | |
Log.v(TAG, task.getException().toString()); | |
} | |
} | |
}); | |
} | |
/* | |
* Voici comment écouter l'enregistrement de notre like et changer l'icône à afficher en fonction de cette information | |
*/ | |
mRef.collection(FirestoreCollections.LIKES).document(App.getGUID()).addSnapshotListener(listener); | |
ContextCompat.getDrawable(mContext, documentSnapshot.exists() ? R.drawable.ic_thumb_up : R.drawable.ic_thumb_up_outline) | |
/* | |
* Pour compter le nombre de like c'est moins propre puisqu'on doit d'abord récupérer l'ensemble des likes | |
* puis calculer la taille du tableau retourné. | |
* @see Firebase Functions pour calculer cela automatiquement à chaque insertion | |
*/ | |
mRef.collection(FirestoreCollections.LIKES).document(App.getGUID()).addSnapshotListener(listener); | |
holder.mLike.setText(documentSnapshots.getDocuments().size() + ""); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment