Данные, не загруженные при использовании базы данных в реальном времени

# #firebase #flutter #firebase-realtime-database

Вопрос:

Я пытаюсь использовать базу данных в реальном времени, я выполнил следующие действия, но данные не загружены, в консоли отладки не отображается ошибка

  1. Создал проект на консоли Firebase
  2. Зарегистрировал приложение (не добавил ключи SHA)
  3. Добавил google.json в моем проекте
  4. Создайте новую базу данных в реальном времени в тестовом режиме

Это мой код

 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. Пожалуйста.. Рад помочь…. и счастливого кодинга.