Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase实时数据库:如何在push()之后获取唯一密钥。set()?_Firebase_Flutter_Firebase Realtime Database - Fatal编程技术网

Firebase实时数据库:如何在push()之后获取唯一密钥。set()?

Firebase实时数据库:如何在push()之后获取唯一密钥。set()?,firebase,flutter,firebase-realtime-database,Firebase,Flutter,Firebase Realtime Database,在我的flatter代码中,下面是我将数据保存到Firebase实时数据库的步骤 final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room'); void _sendMessage({String messageText, String imageUrl}) async{ await reference.push().set({ 'text': mes

在我的flatter代码中,下面是我将数据保存到Firebase实时数据库的步骤

final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');

void _sendMessage({String messageText, String imageUrl}) async{
    await reference.push().set({
      'text': messageText,
      'imageUrl': imageUrl,
    });

  }
这将在数据库中生成以下结果

我需要在提交数据后立即检索生成的唯一密钥,但我如何才能做到这一点?

该方法返回一个,因此您可以按如下操作:

final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');

void _sendMessage({String messageText, String imageUrl}) async {
    DatabaseReference newRef = reference.push();
    String newKey = newRef.key;
    await newRef.set({
      'text': messageText,
      'imageUrl': imageUrl,
    });

  }
请注意,在调用push方法时,您会立即获得新的DatabaseReference:无需等待对asynchronous set方法的调用完成。

该方法返回一个,因此您可以执行以下操作:

final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');

void _sendMessage({String messageText, String imageUrl}) async {
    DatabaseReference newRef = reference.push();
    String newKey = newRef.key;
    await newRef.set({
      'text': messageText,
      'imageUrl': imageUrl,
    });

  }

请注意,在调用push方法时,您会立即获得新的DatabaseReference:无需等待对异步set方法的调用完成。

您可以使用不同的方法获得该id。首先,您可以获取下一个id,并将项目推入其中。它将如下所示:


final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');

void _sendMessage({String messageText, String imageUrl}) async{

    String newkey = reference.push().key; // That is your unique key!

   await reference.child(newkey).set({
      'text': messageText,
      'imageUrl': imageUrl,
    });
  }


您可以使用不同的方法获取该id。首先,您可以获取下一个id,并将项目推入其中。它将如下所示:


final DatabaseReference reference = FirebaseDatabase.instance.reference().child('chat_room');

void _sendMessage({String messageText, String imageUrl}) async{

    String newkey = reference.push().key; // That is your unique key!

   await reference.child(newkey).set({
      'text': messageText,
      'imageUrl': imageUrl,
    });
  }


太神了非常感谢。你能帮我一把吗太神了非常感谢。请帮我一把好吗-