Как я могу получить автоматически сгенерированный ключ от Firebase в моем проекте Flutter? - PullRequest
0 голосов
/ 10 марта 2020

Это продолжение этого поста: Я хотел бы добавить кнопку «Мне нравится» в это приложение для блога флаттера

В настоящее время я могу распечатать автоматически сгенерированные ключи в базе данных реального времени Firebase используя print(snap.key);

Моя проблема заключается в добавлении его в эту функцию onTap _incrementCounter. Не уверен, что здесь делать. Конечно, если я заменил + snap.key + на любой из сообщений поста в пожарной базе, то эта функция будет работать только для этого сообщения:

void _incrementCounter() async {
    try {
      var ref = FirebaseDatabase.instance.reference().child('posts/'+ snap.key +'/counter');
      await ref.once().then((data) async => {
        await ref.set(data.value + 1),
      });
    } catch (e) {
      print(e.message);
    }
  }
}

enter image description here

Буду признателен за любую оказанную помощь. Спасибо всем!

1 Ответ

1 голос
/ 10 марта 2020

Вы можете просто передать ключ своей функции. Или я что-то недопонимаю?

...
onTap: (){
     _incrementCounter(postsList[index].key);
}
...

void _incrementCounter(key) async {
    try {
      var ref = FirebaseDatabase.instance.reference().child('posts/'+ key +'/counter');
      await ref.once().then((data) async => {
        await ref.set(data.value + 1),
      });
    } catch (e) {
      print(e.message);
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...