[Firestore]:在消息/最近写入失败:状态{code = PERMISSION_DENIED,描述=缺少权限或权限不足,原因=空}

时间:2020-05-17 06:58:03

标签: database firebase flutter google-cloud-firestore

将消息文本发送到Firebase中的Firestore数据库时发生错误

我已集成了登录功能,现在想将键入的消息发送到Firestore。

我是扑扑开发的新手,并试图将Firestore连接起来。 尝试过collection.add()和collection.setData()

这是飞镖代码

import 'package:flutter/material.dart';
import 'package:flash_chat/constants.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

class ChatScreen extends StatefulWidget {
  @override
  _ChatScreenState createState() => _ChatScreenState();
  static const chat_screen = "chat_screen";
}

class _ChatScreenState extends State<ChatScreen> {
  final _auth = FirebaseAuth.instance;
  final _firestore = Firestore.instance;
  FirebaseUser loggedin;
  String message;

  void getCurrentUser() async {
    try {
      final user = await _auth.currentUser();
      loggedin = user;}
catch (e) {print(e);}}
  @override
  void initState() {
    super.initState();
    getCurrentUser();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: null,
        actions: <Widget>[IconButton(
              icon: Icon(Icons.close),
              onPressed: () {
                //Implement logout functionality
                _auth.signOut();
                Navigator.pop(context);
              }),],
        title: Text('⚡️Chat'),
        backgroundColor: Colors.lightBlueAccent,),
      body: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            Container(
              decoration: kMessageContainerDecoration,
              child: Row(
                crossAxisAlignment: CrossAxisAlignment.center,
                children: <Widget>[Expanded(child: TextField(
                      onChanged: (value) {
                        //Do something with the user input.
                        message = value;},
                      decoration: kMessageTextFieldDecoration,),),
                  FlatButton(
                    onPressed: () {
                      //Implement send functionality.
                      _firestore
                          .collection('message')
                          .document('recent')
                          .setData({
                        'sender': loggedin.email,
                        'description': message
                      });
                    },
                    child: Text(
                      'Send',
                      style: kSendButtonTextStyle,
[The firebase Collection tree][1]
[Console output on submit][2]


  [1]: https://i.stack.imgur.com/eBAHI.png
  [2]: https://i.stack.imgur.com/cVdGS.png

0 个答案:

没有答案