Местоположение не отображается в FireStore Cloud - PullRequest
0 голосов
/ 06 августа 2020

Я создаю страницу профиля и не понимаю, почему адрес не сохраняется, и он просто кажется пустым, когда я выхожу со страницы профиля на домашнюю страницу, и почему он сохраняется в облачном хранилище, это Profilepage.dart

    User userr = User();
 TextEditingController _userAdressController = TextEditingController();
    ...
         FutureBuilder(
                                        future: _getProfileData(context),
                                        builder: (context, snapshot) {
                                          if (snapshot.connectionState ==
                                              ConnectionState.done) {
                                            _userAdressController.text = userr.adress;
                                          }
        ...
            _getProfileData(BuildContext context) async {
                final uid = await Provider.of(context).auth.getCurrentUID();
                await Provider.of(context)
                    .db
                    .collection('userData')
                    .document('uid')
                    .get()
                    .then((result) {
                  userr.adress = result.data['adress'];
                });
              }
            }

, и это раздел, который я использую для сохранения данных:

Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
                      RaisedButton(
                          child: Text('Save'),
                          color: Colors.green,
                          textColor: Colors.white,
                          onPressed: () async {
                            userr.adress = _userAdressController.text;
                            final uid =
                                await Provider.of(context).auth.getCurrentUID();
                            await Provider.of(context)
                                .db
                                .collection('userData')
                                .document('uid')
                                .setData(userr.toJson());
                            Navigator.of(context).pop();
                          })
                    ],
                  ),
                ],
              ),
            ),
          );
        });
  }

Это user.dart

import 'package:flutter/material.dart';

class User {
  final String uid;
  final String name;
  final String email;
  final String userRole;
  String avatarUrl;
  String adress;
  User(
      {this.uid,
      this.name,
      this.email,
      this.userRole,
      this.adress,
      this.avatarUrl});
  User.fromData(Map<String, dynamic> data)
      : uid = data['uid'],
        name = data['name'],
        email = data['email'],
        userRole = data['userRole'],
        adress = data['adress'],
        avatarUrl = data['avatarUrl'];

  Map<String, dynamic> toJson() => {
        'uid': uid,
        'name': name,
        'email': email,
        'userRole': userRole,
        'adress': adress,
        'avatarUrl': avatarUrl
      };
}

а это Provider.dart

import 'package:flutter/material.dart';
import 'auth.dart';

class Provider extends InheritedWidget {
  final Authentication auth;
  final db;

  Provider({Key key, Widget child, this.auth, this.db})
      : super(key: key, child: child);

  @override
  bool updateShouldNotify(InheritedWidget oldWidget) {
    return true;
  }

  static Provider of(BuildContext context) =>
      (context.inheritFromWidgetOfExactType(Provider) as Provider);
}
...