2017-12-31 222 views
0

ich eine Benutzer Folge/unfollow Seite, die Firebase für eine Liste von Anhängern sucht und gibt einen Booleschen wenn ihr usedID gefunden ...Aktualisieren Flutter Seite nach setState()

Future<Null> _friends() async { 
    fb.child("users/${userid}/Following/${id}").onValue.listen((Event event) { 

     setState((){ 
      if (event.snapshot.value != null) { 
      friends == true; 
      } else if (event.snapshot.value == null) { 
      friends == false; 
      } 
     }); 
    }); 
    } 

Der Bool dann gesetzt ist in einer separaten Funktion, die eine öffentliche Bool ändert ...

bool friends; 

Das Problem ist, dass mein Widget/Scaffold hier nicht aktualisieren ...

friends == true ? new RaisedButton(onPressed: unfollow()) : 
        new RaisedButton(onPressed: follow()); 

Irgendwelche Ideen? Ich werde später mit genauem Code aktualisieren.

+0

Es gibt keine Möglichkeit zu sagen, es sei denn, Sie zeigen, wie Sie Firebase Daten – aziza

+0

@aziza werden Überprüfung Bitte überprüfen hinzugefügt Code –

+1

versuchen, nicht zu machen, wenn Anweisung innerhalb setState, statt zwei setState haben, Eins nach innen und eins nach innen und beide setzen den Wert des Freundes entsprechend. – aziza

Antwort

0

Das Problem ist, dass Sie einen == (Gleichheit) Vergleichsoperator anstelle von = (Zuweisung) verwendet haben. Ändern Sie Ihren Code auf die folgenden:

Future<Null> _friends() async { 
    fb.child("users/${userid}/Following/${id}").onValue.listen((Event event) { 
     setState((){ 
     // this will return true or false which is what you want based on your code :) 
     friends = event.snapshot.value == null; 
     }); 
    }); 
} 
Verwandte Themen