Firebase Web从Firestore获取数据的颤振
如何使用firebase模块检索数据 这是我的班级:Firebase Web从Firestore获取数据的颤振,firebase,flutter,dart,flutter-web,Firebase,Flutter,Dart,Flutter Web,如何使用firebase模块检索数据 这是我的班级: import 'package:firebase/firebase.dart'; import 'package:firebase/firestore.dart'; import 'dart:convert' as json; import 'package:projecthub/models/User.dart'; class DatabaseService { static final Firestore store = fire
import 'package:firebase/firebase.dart';
import 'package:firebase/firestore.dart';
import 'dart:convert' as json;
import 'package:projecthub/models/User.dart';
class DatabaseService {
static final Firestore store = firestore();
CollectionReference users = store.collection('users');
CollectionReference projects = store.collection('projects');
DatabaseService();
void getUsers (){
print("fetching data...");
users.onSnapshot.listen((querySnapshot) {
print(querySnapshot);
});
}
void createNewUser(String uid, String username, int reputaion, List followers){
}
}
这是index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>projecthub</title>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-storage.js"></script>
<script defer src="main.dart.js" type="application/javascript"></script>
</head>
<body>
<script>
document.addEventListener('keydown', function (event) {
if (event.code == 'Tab') {
event.preventDefault();
}
});
var perf = firebase.performance();
</script>
</body>
</html>
我正在初始化main.dart中的应用程序
assert((){
initializeApp(
apiKey: "API KEY",
authDomain: "AUTH DOMAIN",
databaseURL: "DB URL",
projectId: "Project Id",
storageBucket: "storage bucket",
messagingSenderId: "messaging id");
return true;
}());
我已尝试按照firebase模块文档进行操作,但没有找到答案。我正在使用firebase:^7.1.0已尝试cloud\u firestore,但仍找不到答案。
如果您对此主题有任何疑问,请随时询问。请尝试以下代码。它会起作用的
// 1
// FirestoreGet
import 'package:firebase/firebase.dart';
import 'package:firebase/firestore.dart' as fs;
class FirestoreGet {
static Future<List<Users>> getUsers() async {
fs.Firestore store = firestore();
fs.CollectionReference ref = store.collection("users");
List<Users> usersAry = List();
ref.onSnapshot.listen((querySnapshot) {
querySnapshot.docChanges().forEach((change) {
if (change.type == "added") {
// Do something with change.doc
print("Count : ${querySnapshot.size}");
}
});
querySnapshot.docs.forEach((d) {
usersAry.add(Users.fromJson(d.data(), d.id));
});
return usersAry;
});
}
}
// 2
// User Model
class Users {
String first_name;
String last_name;
String email_address;
Users({
String first_name = '',
String last_name = '',
String email_address = '',
}) {
this.first_name = first_name;
this.last_name = last_name;
this.email_address = email_address;
}
Users.fromJson(Map<String, dynamic> jsonMap, String documentId) {
first_name = jsonMap['first_name'];
last_name = jsonMap['last_name'];
email_address = jsonMap['email_address'];
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
'first_name': this.first_name,
'last_name': this.last_name,
'email_address': this.email_address,
};
}
}
// 3
// main.dart
import 'package:firebase/firebase.dart' as fb;
void main(){
assert((){
fb.initializeApp(
apiKey: "API KEY",
authDomain: "AUTH DOMAIN",
databaseURL: "DB URL",
projectId: "Project Id",
storageBucket: "storage bucket",
messagingSenderId: "messaging id");
return true;
}());
runApp(Home());
}
// 4
// Home Page
class Home extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return HomeState();
}
}
class HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
//getting screen size
}
@override
void initState() {
super.initState();
var userAry = FirestoreGet.getUsers();
print(userAry);
}
}
// 5
// index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script defer src="main.dart.js" type="application/javascript"></script>
</head>
<body>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-firestore.js"></script>
<script>
document.addEventListener('keydown', function (event) {
// console.log('event key'+event.code);
if (event.code == 'Tab') {
event.preventDefault();
}
});
var perf = firebase.performance();
</script>
</body>
</html>
// 6
// pubspec.yaml
dependencies:
flutter:
sdk: flutter
firebase: ^7.1.0
//1
//FirestoreGet
导入“包:firebase/firebase.dart”;
将“包:firebase/firestore.dart”作为fs导入;
FirestoreGet类{
静态未来getUsers()异步{
fs.Firestore-store=Firestore();
fs.collectionref=store.collection(“用户”);
List usersAry=List();
参考onSnapshot.listen((querySnapshot){
querySnapshot.docChanges().forEach((更改){
如果(change.type==“已添加”){
//用change.doc做点什么
打印(“计数:${querySnapshot.size}”);
}
});
querySnapshot.docs.forEach((d){
添加(Users.fromJson(d.data(),d.id));
});
返回用户权限;
});
}
}
// 2
//用户模型
类用户{
字符串名;
字符串last_name;
字符串电子邮件地址;
使用者({
字符串first_name=“”,
字符串last_name=“”,
字符串电子邮件地址=“”,
}) {
this.first\u name=first\u name;
this.last_name=last_name;
this.email\u address=电子邮件地址;
}
fromJson(映射jsonMap,字符串documentId){
first_name=jsonMap['first_name'];
last_name=jsonMap['last_name'];
email_address=jsonMap['email_address'];
}
映射toMap(){
返回{
“first\u name”:这个.first\u name,
“姓氏”:this.last\u name,
“电子邮件地址”:此.email\u地址,
};
}
}
// 3
//主飞镖
将“包:firebase/firebase.dart”作为fb导入;
void main(){
断言(){
fb.initializeApp(
API密钥:“API密钥”,
authDomain:“AUTH域”,
数据库URL:“数据库URL”,
projectId:“项目Id”,
存储桶:“存储桶”,
messagingSenderId:“消息id”);
返回true;
}());
runApp(Home());
}
// 4
//主页
类Home扩展了StatefulWidget{
@凌驾
状态createState(){
//TODO:实现createState
返回家园();
}
}
类HomeState扩展到State{
@凌驾
小部件构建(构建上下文){
//获取屏幕大小
}
@凌驾
void initState(){
super.initState();
var userAry=FirestoreGet.getUsers();
打印(用户);
}
}
// 5
//index.html
document.addEventListener('keydown',函数(事件){
//console.log('事件键'+事件代码);
如果(event.code=='Tab'){
event.preventDefault();
}
});
var perf=firebase.performance();
// 6
//公开发行
依赖项:
颤振:
sdk:颤振
firebase:^7.1.0
尝试下面的代码。它会起作用的
// 1
// FirestoreGet
import 'package:firebase/firebase.dart';
import 'package:firebase/firestore.dart' as fs;
class FirestoreGet {
static Future<List<Users>> getUsers() async {
fs.Firestore store = firestore();
fs.CollectionReference ref = store.collection("users");
List<Users> usersAry = List();
ref.onSnapshot.listen((querySnapshot) {
querySnapshot.docChanges().forEach((change) {
if (change.type == "added") {
// Do something with change.doc
print("Count : ${querySnapshot.size}");
}
});
querySnapshot.docs.forEach((d) {
usersAry.add(Users.fromJson(d.data(), d.id));
});
return usersAry;
});
}
}
// 2
// User Model
class Users {
String first_name;
String last_name;
String email_address;
Users({
String first_name = '',
String last_name = '',
String email_address = '',
}) {
this.first_name = first_name;
this.last_name = last_name;
this.email_address = email_address;
}
Users.fromJson(Map<String, dynamic> jsonMap, String documentId) {
first_name = jsonMap['first_name'];
last_name = jsonMap['last_name'];
email_address = jsonMap['email_address'];
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
'first_name': this.first_name,
'last_name': this.last_name,
'email_address': this.email_address,
};
}
}
// 3
// main.dart
import 'package:firebase/firebase.dart' as fb;
void main(){
assert((){
fb.initializeApp(
apiKey: "API KEY",
authDomain: "AUTH DOMAIN",
databaseURL: "DB URL",
projectId: "Project Id",
storageBucket: "storage bucket",
messagingSenderId: "messaging id");
return true;
}());
runApp(Home());
}
// 4
// Home Page
class Home extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return HomeState();
}
}
class HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
//getting screen size
}
@override
void initState() {
super.initState();
var userAry = FirestoreGet.getUsers();
print(userAry);
}
}
// 5
// index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script defer src="main.dart.js" type="application/javascript"></script>
</head>
<body>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.5.0/firebase-firestore.js"></script>
<script>
document.addEventListener('keydown', function (event) {
// console.log('event key'+event.code);
if (event.code == 'Tab') {
event.preventDefault();
}
});
var perf = firebase.performance();
</script>
</body>
</html>
// 6
// pubspec.yaml
dependencies:
flutter:
sdk: flutter
firebase: ^7.1.0
//1
//FirestoreGet
导入“包:firebase/firebase.dart”;
将“包:firebase/firestore.dart”作为fs导入;
FirestoreGet类{
静态未来getUsers()异步{
fs.Firestore-store=Firestore();
fs.collectionref=store.collection(“用户”);
List usersAry=List();
参考onSnapshot.listen((querySnapshot){
querySnapshot.docChanges().forEach((更改){
如果(change.type==“已添加”){
//用change.doc做点什么
打印(“计数:${querySnapshot.size}”);
}
});
querySnapshot.docs.forEach((d){
添加(Users.fromJson(d.data(),d.id));
});
返回用户权限;
});
}
}
// 2
//用户模型
类用户{
字符串名;
字符串last_name;
字符串电子邮件地址;
使用者({
字符串first_name=“”,
字符串last_name=“”,
字符串电子邮件地址=“”,
}) {
this.first\u name=first\u name;
this.last_name=last_name;
this.email\u address=电子邮件地址;
}
fromJson(映射jsonMap,字符串documentId){
first_name=jsonMap['first_name'];
last_name=jsonMap['last_name'];
email_address=jsonMap['email_address'];
}
映射toMap(){
返回{
“first\u name”:这个.first\u name,
“姓氏”:this.last\u name,
“电子邮件地址”:此.email\u地址,
};
}
}
// 3
//主飞镖
将“包:firebase/firebase.dart”作为fb导入;
void main(){
断言(){
fb.initializeApp(
API密钥:“API密钥”,
authDomain:“AUTH域”,
数据库URL:“数据库URL”,
projectId:“项目Id”,
存储桶:“存储桶”,
messagingSenderId:“消息id”);
返回true;
}());
runApp(Home());
}
// 4
//主页
类Home扩展了StatefulWidget{
@凌驾
状态createState(){
//TODO:实现createState
返回家园();
}
}
类HomeState扩展到State{
@凌驾
小部件构建(构建上下文){
//获取屏幕大小
}
@凌驾
void initState(){
super.initState();
var userAry=FirestoreGet.getUsers();
打印(用户);
}
}
// 5
//index.html
document.addEventListener('keydown',函数(事件){
//console.log('事件键'+事件代码);
如果(event.code=='Tab'){
event.preventDefault();
}
});
var perf=firebase.performance();
// 6
//公开发行
依赖项:
颤振:
sdk:颤振
firebase:^7.1.0
这应该行得通-它对您不起作用怎么办?您正在呼叫getUsers
?你调试了你的代码吗?@CreativeCreatorMaybeno它没有打印“获取数据”,但是它没有打印查询快照我不知道为什么你要将库添加为
标签并初始化你的应用程序?@CreativeCreatorMaybeno是的,我没有。这应该行得通-那它对你不起作用呢?您正在呼叫getUsers
?你调试了你的代码吗?@creativeCreatorMaybeno它不打印“获取数据”,但不打印q