Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
382 views
in Technique[技术] by (71.8m points)

flutter - How to get int type data from firebase real time database

I have tried to get the value of an int type from my database but it returns a null value i used a future to prevent that but still same problem it returns null

I tried calling the method inside the build function and also outside the build even went a step further to call it inside initState but no success whats the problem?

Widget build(BuildContext context){...}
int getSnapShotDataAsInt(String child){
  FutureBuilder(
    future: databaseReference
      .child("users")
      .child(_firebaseUser.uid)
      .child(child)
      .once(),
    builder: (BuildContext context, AsyncSnapshot snapshot) {
      if (snapshot.hasData && snapshot.data != null) {
        return snapshot.data.value;
      } else {
        return CircularProgressIndicator();
      }
    }
  );
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I believe the issue is your ".value", the correct call as per documentation is:

return snapshot.data.val();

I believe you can optionally pass a data type into those brackets to attempt conversion to specific data type. Such as:

return snapshot.data.val(String); (etc)

https://firebase.google.com/docs/reference/node/firebase.database.DataSnapshot#val


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...