проблемы, переместив данные json в flutter

Я хотел бы, чтобы всех данных пользователей, которые находятся в одиноком json, он явился одним, тем, что совпал с пользователем, что этот logeado, тогда чтобы видеть, происходила ли со мной почта, с которой я инициализирую сеанс, я это поместил в титул appbar, и если он показывает это мне, с этим я хочу сравнить это с данными json тогда делаю класс user mapeo для comparalo с json, но он продолжает меня печатая всю почту всех пользователей и не, которого мне не хватает, он был бы благодарен много за Вашу помощь я едва знаю flutter.

import 'package:flutter/material.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
   MyApp({this.email});
  final String email;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('$email')
        ),
        body: JsonListView(email:email),
      ),
    );
  }
}

class User{
  final String email;
  User({this.email,});

  factory User.fromJson(Map<String, dynamic> json)=>new User(
      email:json['us_correo'],
  );

  Map<String,dynamic>toJason()=>{
    "us_correo":email,
  };

  User userFromJson(String str){
    final jsonData=json.decode(str);
    return User.fromJson(jsonData);
  }
}

class JsonListView extends StatefulWidget {
  JsonListView({this.email});
  final String email;
  JsonListViewWidget createState() => JsonListViewWidget();
 }

class JsonListViewWidget extends State<JsonListView> {
  final String uri = 'getdata.php';
  Future<List<User>> getData() async {
    var response = await http.get(uri);

    if (response.statusCode == 200) {
      final items = json.decode(response.body).cast<Map<String, dynamic>>();
      List<User> listOfUsers = items.map<User>((json) {
        return User.fromJson(json);
      }).toList();
      return listOfUsers;
    }
    else {
      throw Exception('Failed to load data.');
    }
  }
 @override
  Widget build(BuildContext context) {
    return FutureBuilder<List<User>>(
        future: getData(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) return Center(
            child: CircularProgressIndicator()
            );
            return ListView(
            children: snapshot.data
                .map((data) => ListTile(
                      title: Text("Mostrar Datos"),
                      subtitle: Text("correo: "+data.email+""),
                    ))
                .toList(),
          );
        },
    );
  }
}
1
задан 09.11.2019, 22:06
1 ответ

Поскольку я вижу файл getData.php, возврати JSON с данными всех пользователей, что включает почту electrГіnico, ты не можешь делать частичные консультации JSON (кто-то, что я corriga, если я спутан).

Имей в виду:

  1. Каждый раз, когда пользователь сделал консультацию для getData.php только чтобы разворачивать Ваш informaciГіn, будет загружать большой файл с данными, который никогда не использовал.
  2. Из-за тем seguirdad, ты не можешь доверять использованию, которое usarios дадут ему в тебе aplicaciГіn поэтому, человек с необходимыми знаниями мог бы иметь доступ ко всему она informaciГіn всех пользователей, правильное состояло бы в том, чтобы иметь правила безопасности в части сервера, которые бы это предотвращали.

Надеялся, что это служит тебе помощью.

1
ответ дан 01.12.2019, 12:10
  • 1
    ты имеешь razó n из-за тем безопасности он плохой того, что я стараюсь делать, мне не хватает много из-за того, что изучает большое спасибо – Rock Dan 10.11.2019, 07:47