项目未连接到实时数据库 - 颤动

时间:2021-02-22 14:12:44

标签: firebase flutter firebase-realtime-database

我遇到实时数据库无法工作的问题,我从 GitHub 复制了一个项目,并使用我的应用 ID 在 firebase 中创建了一个新项目,将 JSON 文件添加到我的应用并更改了 write 和 { {1}} 规则到 read 但仍然无法正常工作或在终端中显示任何内容

源代码:

true

数据库规则:

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

class CustomData extends StatefulWidget {
  CustomData({this.app});
  final FirebaseApp app;
  @override
  _CustomDataState createState() => _CustomDataState();
}

class _CustomDataState extends State<CustomData> {
  final refrenceDatabase = FirebaseDatabase.instance;
  final MovieController  = TextEditingController();

  @override
  Widget build(BuildContext context) {
    final ref = refrenceDatabase.reference();
    return Scaffold(
      appBar: AppBar(title: Text('Real Time DataBase'),backgroundColor: Colors.red,),
      backgroundColor: CupertinoColors.systemGrey,
      body: SingleChildScrollView(
        child: Column(children: [
          Center(child:
          Container(
            color: Colors.blue,
            width: MediaQuery.of(context).size.width,
            height: MediaQuery.of(context).size.height,
            child: Column(
              children: [
                Text('Movie title',style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), textAlign: TextAlign.center,),
                TextField(controller: MovireController, textAlign: TextAlign.center,),
                FlatButton(
                  color: Colors.orange,
                    onPressed: (){
                  ref.child('Movies').push().child('movie title').set(MovieController).asStream();
                }, child: Text('Submit'))
              ],
            ),

          ),)
        ],),
      ),
    );
  }
}

1 个答案:

答案 0 :(得分:1)

好的。所以,从我所看到的,你没有收到任何错误。因此,这意味着您的 Firebase 连接正确。 第二件事是代码中的以下错误。我不知道你希望用下面的代码做什么,但它是不正确的。

// Firstly, you're passing a TextEditingController instead of a string.
// Secondly, you're streaming data but you're not accessing it anywhere.
ref.child('Movies').push().child('movie title').set(MovieController).asStream();
ref.child('Movies').push().set({
  "movie title": MovieController.text,
});

这应该将数据推送到您的数据库。