Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Add] post to tweet to firestore #4

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion frontend/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:twitter/models/user.dart';
import 'package:twitter/screens/auth/signup.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:twitter/screens/wrapper.dart';
import 'package:twitter/services/auth.dart';
Expand Down
5 changes: 5 additions & 0 deletions frontend/lib/screens/main/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ class Home extends StatelessWidget {
})
],
),
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.pushNamed(context, '/add');
},
child: Icon(Icons.add)),
);
}
}
39 changes: 39 additions & 0 deletions frontend/lib/screens/main/posts/add.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import 'package:twitter/services/posts.dart';

class Add extends StatefulWidget {
Add({Key key}) : super(key: key);

@override
_AddState createState() => _AddState();
}

class _AddState extends State<Add> {
final PostService _postService = PostService();
String text = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Tweet'),
actions: <Widget>[
FlatButton(
textColor: Colors.white,
onPressed: () async {
_postService.savePost(text);
Navigator.pop(context);
},
child: Text('Tweet'))
],
),
body: Container(
padding: EdgeInsets.symmetric(vertical: 20, horizontal: 10),
child: new Form(child: TextFormField(
onChanged: (val) {
setState(() {
text = val;
});
},
))));
}
}
5 changes: 4 additions & 1 deletion frontend/lib/screens/wrapper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:provider/provider.dart';
import 'package:twitter/models/user.dart';
import 'package:twitter/screens/auth/signup.dart';
import 'package:twitter/screens/main/home.dart';
import 'package:twitter/screens/main/posts/add.dart';

class Wrapper extends StatelessWidget {
const Wrapper({Key key}) : super(key: key);
Expand All @@ -18,6 +19,8 @@ class Wrapper extends StatelessWidget {
}

//show main system routes
return Home();
return MaterialApp(
initialRoute: '/',
routes: {'/': (context) => Home(), '/add': (context) => Add()});
}
}
12 changes: 12 additions & 0 deletions frontend/lib/services/posts.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';

class PostService {
Future savePost(text) async {
await FirebaseFirestore.instance.collection("posts").add({
'text': text,
'creator': FirebaseAuth.instance.currentUser.uid,
'timestamp': FieldValue.serverTimestamp()
});
}
}
21 changes: 21 additions & 0 deletions frontend/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,27 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0-nullsafety.1"
cloud_firestore:
dependency: "direct main"
description:
name: cloud_firestore
url: "https://pub.dartlang.org"
source: hosted
version: "0.14.4"
cloud_firestore_platform_interface:
dependency: transitive
description:
name: cloud_firestore_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.1"
cloud_firestore_web:
dependency: transitive
description:
name: cloud_firestore_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.1+2"
collection:
dependency: transitive
description:
Expand Down
1 change: 1 addition & 0 deletions frontend/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ dependencies:
provider: ^4.3.2+3
firebase_core: "0.5.3"
firebase_auth: "^0.18.4"
cloud_firestore: ^0.14.4


# The following adds the Cupertino Icons font to your application.
Expand Down