Вы запрашиваете запрос и документацию для запросов ( здесь, в JavaScript , но это действительно для всех языков), говорит, что «даже когда для запроса есть только одно совпадение,Снимок по-прежнему является списком, он просто содержит один элемент. Чтобы получить доступ к элементу, вам нужно перебрать результат. "
Я не знаю точно, как вы должны зацикливаться, в Flutter / Dart, надпотомки снимка, но вы должны сделать что-то вроде следующего (в JavaScript):
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var childData = childSnapshot.val();
// ...
});
и, предполагая, что ваш запрос возвращает только одну запись («одно совпадение»), используйте дочерний снимок, когда выделать
var user = new User.fromSnapShot(childSnapshot.key, childSnapshot.value);