Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 245e658

Browse files
committed
add some idea
1 parent f3e123b commit 245e658

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

lib/db/database_provider.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ class DatabaseProvider {
7272
return User.fromJson(users[0]);
7373
}
7474

75+
Future<bool> saveUser(User user) async {
76+
final db = await database;
77+
var index = await db.insert("user", user.toJson());
78+
return index > 0;
79+
}
80+
7581
Future<List<Habit>> getAllHabits() async {
7682
final db = await database;
7783
var habits = await db.query('habits');

lib/login/login_page.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:data_plugin/bmob/table/bmob_user.dart';
77
import 'package:flutter/material.dart';
88
import 'package:flutter/services.dart';
99
import 'package:timefly/db/database_provider.dart';
10+
import 'package:timefly/models/user.dart';
1011
import 'package:timefly/utils/flash_helper.dart';
1112
import 'package:timefly/utils/system_util.dart';
1213
import 'package:timefly/widget/custom_edit_field.dart';
@@ -222,7 +223,9 @@ class _LoginPageState extends State<LoginPage>
222223
bmobUserRegister.mobilePhoneNumber = phone;
223224
bmobUserRegister.loginBySms(code).then((BmobUser bmobUser) {
224225
FlashHelper.toast(context, '登录成功');
225-
226+
DatabaseProvider.db.saveUser(User(bmobUser.objectId,
227+
bmobUser.username, bmobUser.mobilePhoneNumber));
228+
SessionUtils.init();
226229
Navigator.of(context).pop();
227230
}).catchError((e) {
228231
FlashHelper.toast(context, BmobError.convert(e).error);

lib/models/user.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ class SessionUtils {
2828
currentUser = await DatabaseProvider.db.getCurrentUser();
2929
}
3030

31+
static void login(User user) {
32+
currentUser = user;
33+
}
34+
35+
static void logout() {
36+
currentUser = null;
37+
}
38+
3139
static bool isLogin() {
3240
return currentUser != null;
3341
}

lib/test.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,4 +281,10 @@ class Name {
281281
///
282282
/// 软著 用户政策 隐私协议
283283
///
284+
/// 云数据存储
285+
/// 提供同步数据接口
286+
/// 登录成功之后 若本地的habit userId不存在,说明是第一次登录,并将本地数据更新 userId字段,同步上传本地数据,之后拉去远端数据,更新本地数据
287+
/// 换账号登录,若本地habit userId与登录userId不一样,删除本地数据,全部从云端拉取,并保存在本地。
288+
///
289+
/// 每次打开APP都会上传同步一次
284290
///

0 commit comments

Comments
 (0)