Quantcast
Channel: Recent Threads — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 204402

Observable collection help

$
0
0

Hello everyone

I have a tiny problem with my observable collection.
I am using firebase with a plugin (https://github.com/f-miyu/Plugin.CloudFirestore) and it works great, but I have two a problem

here I am saving a pet


and when I popAsync(), I go MyMascotas page, where I have a read method that gets invoke every time that page appears, but I dont see my new pet. I have to exit the screen and go back in in order for me to see it

   private async void FabBtn_Clicked(object sender, System.EventArgs e) {

            string accion = await DisplayActionSheet(null, "Cancelar",
                  null, "Usar camara", "Elegir de la galería", null);


            switch (accion) {

                case "Usar camara":
                    mediaFile = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions {
                        Directory = "AppetLand Photos",
                        SaveToAlbum = true,
                        DefaultCamera = CameraDevice.Front
                    });

                    if (mediaFile == null) {
                        return;
                    }
                    img = ImageSource.FromStream(() => mediaFile.GetStream());

                    mascotaImg = await StoreImages(mediaFile.GetStream(), "Imagen principal", Path.GetExtension(mediaFile.Path));

                    Preferences.Set("Mascota Prinpipal", mascotaImg);

                    await Navigation.PushAsync(new PetInfoScreen(mascotaImg));
                    break;
                case "Elegir de la galería":
                    mediaFile = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions { });

                    if (mediaFile == null) {
                        return;
                    }
                    img = ImageSource.FromStream(() => mediaFile.GetStream());

                    mascotaImg = await StoreImages(mediaFile.GetStream(), "Imagen principal", Path.GetExtension(mediaFile.Path));

                    Preferences.Set("Mascota Prinpipal", mascotaImg);

                    await Navigation.PushAsync(new PetInfoScreen(mascotaImg));

                    break;
                default:
                    break;
            }
        }

        protected override void OnAppearing() {
            base.OnAppearing();

            myMascotasViewModel.GetData();
        }

I am using also a view model to back it up

   public ObservableCollection<Pet> Pets { get; set; }
        IAuth auth;

        public MyMascotasViewModel() {
            Pets = new ObservableCollection<Pet>();

            auth = DependencyService.Get<IAuth>();

            GetData();
        }
        public async void GetData() {

            var document = await CrossCloudFirestore.Current
                                      .Instance
                                      .GetCollection("Pets")
                                      .WhereEqualsTo("Owner", auth.GetUserDisplayName())
                                      .GetDocumentsAsync();

            var p = document.ToObjects<Pet>();

            Pets.Clear();
            foreach (var item in p) {

                Pets.Add(item);
            }

            Debug.WriteLine(Pets.Count);
        }

Viewing all articles
Browse latest Browse all 204402

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>