public async void childAdded(DataSnapshot snapshot, string previousChildName) { // Card metadata string fromUserID = (string)snapshot.Child("FromUserID").GetValue(true); string cardID = (string)snapshot.Child("CardID").GetValue(true); string mediaNames = (string)snapshot.Child("MediaNames").GetValue(true); string cardName = (string)snapshot.Child("Name").GetValue(true); //Ask user if accept card if (await AcrDialogUtilities .promptConfirm("Do you want to accept a card from " + fromUserID + "?")) { downloadCard(fromUserID, cardID, mediaNames, cardName); } }
/// <summary> /// Listen to OtherCards database for new shared cards /// </summary> public async void initialize() { string userID = await AcrDialogUtilities.promptInput("Input User ID"); if (userID == "") { return; } // FirebaseDatabase - get cards shared with userID FirebaseDatabase database = FirebaseDatabase.Instance; DatabaseReference dr_userCardListItem = database.GetReference("Users").Child(userID).Child("OthersCards"); Query sharedCardsQuery = dr_userCardListItem.LimitToFirst(100); sharedCardsQuery.AddChildEventListener(new FirebaseChildListener(this)); }
public async void uploadCard(Card card) { // TODO HARDCODED USER ID string userID = await AcrDialogUtilities.promptInput("Input User ID"); string sendToUserID = await AcrDialogUtilities.promptInput("Input Share to User ID"); if (userID == "" || sendToUserID == "") { return; } // FirebaseDatabase - Update userID with card FirebaseDatabase database = FirebaseDatabase.Instance; DatabaseReference dr_curUser = database.GetReference("Users").Child(userID); DatabaseReference dr_curUserCards = dr_curUser.Child("MyCards"); DatabaseReference dr_curCard = dr_curUserCards.Push(); // Unique card ID generated dr_curCard.Child("Name").SetValue(card.name); dr_curCard.Child("UploadFinished").SetValue(false); dr_curCard.Child("MediaNames").SetValue(stringifyCardMediaNames(card)); // FirebaseDatabase - Update sendToUserID with card DatabaseReference dr_userCardListItem = database.GetReference("Users").Child(sendToUserID).Child("OthersCards").Push(); dr_userCardListItem.Child("FromUserID").SetValue(userID); dr_userCardListItem.Child("CardID").SetValue(dr_curCard.Key); dr_userCardListItem.Child("MediaNames").SetValue(stringifyCardMediaNames(card)); dr_userCardListItem.Child("Name").SetValue(card.name); // FirebaseStorage - Store card FirebaseStorage storage = FirebaseStorage.Instance; StorageReference sr_cud = storage.GetReference("Users").Child(userID); StorageReference sr_curCard = sr_cud.Child(dr_curCard.Key); // Use unique card ID StorageReference sr_cardMedias = sr_curCard.Child("Media"); uploadCardMedia(sr_cardMedias, card); // Mark upload finished dr_curCard.Child("UploadFinished").SetValue(true); }