Создать оповещение радиокнопки из данных Firestore - PullRequest
1 голос
/ 27 сентября 2019

Я хочу создать оповещение о переключателе, используя данные в fireStore.Я сгенерировал наблюдаемое с помощью valueChanges (), но console.log возвращает значение Undefined, когда я использовал его в функции, которая не может прочитать данные и в конечном итоге не может вставить значения для переключателя.Я новичок в FireStore и Ionic.

Я также пытался использовать .get (). Then (function (doc), но возвращает ошибку как не функцию. Я также пытался использовать subscribe (), но также не смог дать мне фактические данные, илиЯ что-то пропустил. У меня есть Google в течение многих дней, но я просто не могу найти решение. Я надеюсь, что кто-то может помочь.

myMemberList = [];

constructor(public navCtrl: NavController, 
       public alertCtrl: AlertController,
       public firestore: AngularFirestore, 
       public afAuth: AngularFireAuth,
    ) { }

ionViewDidEnter() {
  this.afAuth.authState.subscribe(user => {
     if (user) {
      this.userId = user.uid;
      this.fireStoreTaskList = this.firestore.doc<any>('users/' + 
      this.userId).collection('Member').valueChanges();
     }
  });
}

// create the inputs for radio button //
createInputs() {
    const theNewInputs = [];
 for (let i = 0; i < this.fireStoreTaskList.length; i++) { // undefined
    theNewInputs.push(
      {
        type: 'radio',
        label: this.fireStoreTaskList.memberName,     // undefined
        value: this.fireStoreTaskList.memberId,       // undefined
        checked: false      
      }
    );

  } {
  console.log(theNewInputs);
  }
  return theNewBeneInputs;
}

// Radio button alert to choose data //
async selectMember() {
  this.myMemberList = this.createInputs();
  const alert = await this.alertCtrl.create({
    header: 'Member',
    inputs: this.myMemberList,

    buttons: [{ text: 'Cancel', role: 'cancel' },
              { text: 'OK',
                 handler: data => {
                 console.log(data)
                }
              }
              ]
  });
  await alert.present();
}

1 Ответ

1 голос
/ 27 сентября 2019

Я работаю с Ionic 4 уже некоторое время, и я также интегрировал Firebase Firestore в свое приложение.Я не совсем понял все описание, но у меня есть решение для вашего первоначального вопроса «Я хочу создать оповещение о переключателе с помощью данных в Firestore»

Я предполагаю, чтовы уже настроили свое приложение с помощью приложения Firebase, если нет, то я предлагаю следовать Как создать приложение Ionic 4 с Firebase и AngularFire 5 .

В моем примере есть 1 кнопка, котораявсякий раз, когда вы щелкаете по нему, он выполняет следующие действия:

  1. Доступ к базе данных Firestore.
  2. Загрузка документов Firestore.
  3. Получение поля memberName каждого документа.
  4. Добавить эти имена в массив имен
  5. Создать оповещение о кнопках радио.
  6. Для переключателей будет создан список радиокнопки с именами членов.
  7. Отображение массива.

Чтобы мой код работал, это структура базы данных Firestore, которой я следовал:

.
└── collection: "users"
    └── document: "autogenerated_id"
    |   ├── memberID: "user_id"
    |   └── memberName: "Name 01"
    └── document: "autogenerated_id"
        ├── memberID: "user_id"
        └── memberName: "Name 02"

Когдапри нажатии на кнопку вы увидите предупреждение с переключателями, например Имя 01 и Имя 02

Как я уже упоминал выше, это мой пример кода .Он загружает данные из Firestore и Создает предупреждение с переключателями, используя эти данные , как вы описали в своем вопросе.Я добавил много комментариев для вас в коде.Если это не совсем то, что вы искали, взгляните на код и измените его в соответствии с вашими потребностями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...