# #firebase #flutter #firebase-realtime-database
Вопрос:
Я пытаюсь использовать базу данных в реальном времени, я выполнил следующие действия, но данные не загружены, в консоли отладки не отображается ошибка
- Создал проект на консоли Firebase
- Зарегистрировал приложение (не добавил ключи SHA)
- Добавил google.json в моем проекте
- Создайте новую базу данных в реальном времени в тестовом режиме
Это мой код
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
routes: {
'/': (context) => const HomeScreen(),
},
initialRoute: '/',
));
}
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
TextEditingController sendchat = TextEditingController();
final databaseReference =
FirebaseDatabase.instance.reference(); //Reference to connect with DB
final dbname = 'userchat';
var textInputDecoration = const InputDecoration(
labelStyle: TextStyle(
color: Colors.white,
letterSpacing: 1,
fontSize: 22.0,
fontWeight: FontWeight.bold),
filled: true,
fillColor: Colors.white,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(12.0)),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.blue,
width: 2.0,
)),
);
@override
Widget build(BuildContext context) {
print('dbreference ${databaseReference.path}');
print('dbreference1 $databaseReference');
return Scaffold(
backgroundColor: Colors.white,
body: Container(
child: const Text('Realtime DB Demo'),
),
bottomSheet: Padding(
padding: const EdgeInsets.only(left: 5, right: 0, bottom: 5),
child: Row(
children: [
Container(
width: MediaQuery.of(context).size.width * 0.80,
child: TextField(
textAlign: TextAlign.left,
controller: sendchat,
keyboardType: TextInputType.text,
decoration: InputDecoration(
hintText: 'Add message',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
borderSide: const BorderSide(
width: 1,
style: BorderStyle.none,
),
),
filled: true,
contentPadding: const EdgeInsets.all(16),
fillColor: Colors.white,
),
),
),
const SizedBox(
width: 10,
),
Container(
decoration: BoxDecoration(
color: Colors.teal[900],
shape: BoxShape.circle,
),
child: IconButton(
onPressed: () {
print('pressed ${sendchat.text}');
databaseReference.child(dbname).set({
'message': sendchat.text,
'value': 'Test',
});
},
icon: const Icon(Icons.send))),
],
),
),
);
}
}
print('dbreference ${databaseReference.path}'); // No value is displayed
print('dbreference1 $databaseReference'); // Value displayed: Instance of 'DatabaseReference'
Есть ли что-нибудь неправильное в моем коде или в выполненной настройке? .
Комментарии:
1. Вы инициализировали firebase до этого кода с
await Firebase.initializeApp();
помощью … также добавьте ожидание перед этой строкойdatabaseReference.child(dbname).set({ 'message': sendchat.text, 'value': 'Test', });
2. Еще одна вещь, выполнили ли вы шаги на странице «Начало работы с flutterFire» (не все из них требуются) firebase.flutter.dev/документы/обзор#предварительные условия
3. Большое вам спасибо после инициализации и добавления, пока приложение работало.
4. Пожалуйста.. Рад помочь…. и счастливого кодинга.