【问题标题】:How can I get a value from firebase and and put it in a text in Flutter如何从 firebase 获取值并将其放入 Flutter 中的文本中
【发布时间】:2020-05-15 03:32:35
【问题描述】:

我遇到了一个简单的问题,即如何从数据库 Firebase 中获取特定值。

例如,我想获取“name”的值并将其放入文本中。我怎样才能做到这一点?能写详细的代码吗?

  class _HomePageState extends State<HomePage> {
  String myuid;
  FirebaseUser currentUser;


  // To get id
  void _loadCurrentUser() {
  FirebaseAuth.instance.currentUser().then((FirebaseUser user) {
  setState(() { // call setState to rebuild the view
    this.currentUser = user;
  });
  });
   }


@override
void initState() {
super.initState();
_loadCurrentUser();
}


@override
Widget build(BuildContext context) {
myuid = currentUser.uid;

var getname;
Future<void> getName() async {
  DocumentSnapshot ds =
  await Firestore.instance.collection('users').document(myuid).get();
  getname = ds.data['name'];
}

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    试试

    String name;
    
    Future<null> getName() async {
      DocumentSnapshot document = await Firestore.instance.collection('users').document(FirebaseUser().uid).get();
    name = document.data['name']
    }
    

    【讨论】:

      【解决方案2】:

      这是一种获取数据并将其存储在变量中的厚颜无耻的方式

      var name;
      Future<void> getName(){
        DocumentSnapshot ds = await 
             Firestore.instance.collection('users').document(uid).get();
        name = ds.data['name']
      }
      

      然后把它扔到你的文本字段中

      Text(name);
      

      【讨论】:

      • 可以写ds.data['name']吗?错误; The operator '[]' isn't defined for the type 'Object? Function()'. Try defining the operator '[]'. 发生
      【解决方案3】:

      这是您从 Firestore 数据库文档中获取数据一次的方法

      val docRef = db.collection("users").document("mhPtwy..........")
      docRef.get()
              .addOnSuccessListener { document ->
                  if (document != null) {
                      Log.d(TAG, "DocumentSnapshot data: ${document.data}")
                  } else {
                      Log.d(TAG, "No such document")
                  }
              }
              .addOnFailureListener { exception ->
                  Log.d(TAG, "get failed with ", exception)
              }
      

      【讨论】:

      • 如果您使用 .add() ,它将创建随机字符串作为文档 ID,例如 mhptwyob ...因此您需要使用已知数据,例如 usersId。检查答案。
      • 这是 kotlin 代码,用于演示从 firestore 获取数据的过程。例如,当您单击视图时。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多