gpt4 book ai didi

firebase - 我想在用户ID下发送数据,并且还获取相同的数据

转载 作者:行者123 更新时间:2023-12-03 04:51:04 24 4
gpt4 key购买 nike

我无法在当前用户ID下发送它,也无法为当前用户ID获取它。
基本上我想在用户ID下发送数据,并且还获取相同的数据。

  • 因此,我想将当前文档名称更改为用户ID。但是每当我这样做并且我在按下的按钮上调用_sendToServer()时,都会给我错误。
  •  _sendToServer() {
    if (_key.currentState.validate()) {
    _key.currentState.save();
    DatabaseReference ref = FirebaseDatabase.instance.reference();
    final Firestore _db = Firestore.instance;
    var data = {
    "name": name,
    "profession": profession,
    "message": message,
    };
    _db
    .collection('Profile')
    .document('KoMna0Hv7VXoeABwFTGH7LTo1No2')
    .setData(data)
    .then((v) {
    _key.currentState.reset();
    });
    }
    }
  • 在获取数据时也无法执行此操作。因为我在下面的代码中出现错误。
  • fetchUser() async{
    Future<List<Text>> getAllProfiles() async {
    List<Text> returnList = [];
    final Firestore _db = Firestore.instance;
    await _db.collection("profile").getDocuments().then((QuerySnapshot snapshot) {
    snapshot.documents.forEach((doc) {
    var keys = snapshot.value.keys;
    var data = snapshot.value;
    allData.clear();
    for (var key in keys) {
    myData d = new myData(
    data[key]['name'],
    data[key]['message'],
    data[key]['profession'],
    );
    allData.add(d);
    }
    setState(() {
    print('Length : ${allData.length}');
    });
    });
    });
    return returnList;
    }
    }

    我必须提供这些键值对来获取数据,但不幸的是我无法这样做。

    最佳答案

  • 我已经在Firebase用户的代码中添加了orderByChild('id')和equalTo('$ {user.uid}')。我的列表中还有一个项目是data [key] ['id'],即我当前的用户ID。这样,每次用户尝试获取数据时,它都会在列表项中查找当前用户ID,如果匹配,则仅获取该特定数据库。
  • @override
    // ignore: must_call_super
    void initState() {
    FirebaseAuth.instance.currentUser().then((user) {
    fetchUser(user);
    });
    }

    fetchUser(FirebaseUser user) {
    DatabaseReference ref = FirebaseDatabase.instance.reference();
    ref
    .child('node-name')
    .orderByChild('id')
    .equalTo('${user.uid}')
    .once()
    .then((DataSnapshot snap) {
    var keys = snap.value.keys;
    var data = snap.value;
    print(snap.value.toString());
    allData.clear();
    for (var key in keys) {
    myData d = new myData(
    data[key]['name'],
    data[key]['number'],
    data[key]['address'],
    data[key]['id'],
    data[key]['location'],
    data[key]['website'],
    );
    allData.add(d);
    }
    setState(() {
    print('Length : ${allData.length}');
    });
    });
    }
    _sendToServer() async{
    FirebaseUser user = await FirebaseAuth.instance.currentUser();
    if (_key.currentState.validate()) {
    _key.currentState.save();
    DatabaseReference ref = FirebaseDatabase.instance.reference();
    var data = {
    "id": user.uid,
    "name": name,
    "number": number,
    "address": address,
    "location":location,
    "website":website,
    };
    ref.child('node-name').child(user.uid).set(data).then((v) {
    _key.currentState.reset();
    });
    } else {
    setState(() {
    _autovalidate = true;
    });
    }
    }

    关于firebase - 我想在用户ID下发送数据,并且还获取相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61329165/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com