anchor.diff:                sort: (a, b) => b.key.compareTo(a.key),
                 padding: new EdgeInsets.all(0.0),
                 reverse: false,
  -              duration: const Duration(milliseconds: 600),
  -              //increased animation duration
  +              duration: const Duration(milliseconds: 300),
                 itemBuilder: (_, DataSnapshot snapshot,
                     Animation<double> animation) {
                   return new ChatMessage(
  
positive.code:   final DataSnapshot snapshot;
    final Animation animation;
  
  
    Widget build(BuildContext context) {
      return new SizeTransition(
        sizeFactor: new CurvedAnimation(
            parent: animation, curve: Curves.bounceIn),
        axisAlignment: 0.0,
        child: new Container(
          //margin: const EdgeInsets.symmetric(vertical: 10.0),
          padding: new EdgeInsets.only(
              left: 32.0, top: 8.0, bottom: 8.0, right: 16.0),
          decoration: new BoxDecoration(
            //set the product backgrounds with alternative colors
            //color: index modulo 2 == 0 ? Colors.grey[300] : Colors.grey[100],
            color: Colors.grey[300],
          ),
          child: new Row(
            crossAxisAlignment: CrossAxisAlignment.start,
  
            children: <Widget>[
              new Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  new Container(
                    margin: const EdgeInsets.only(top: 0.0),
                    child: new Text(
                      snapshot.value['text'],
                    ),
                  ),
                  new Divider(height: 2.0, color: Colors.grey,),
                ],
              ),
            ],
          ),
        ),
      );
  
negative.code:     await _ensureLoggedIn();
      _sendMessage(text: text);
    }
  
  
  
  
    void _sendMessage({ String text }) {
      reference.push().set({
  