我如何在 DART 中构造此 class,以便我使用 save/query 的必需参数?
How do I construct this class in DART so that I use a required parameter to save/query?
我有一个名为 MessageDao
的 class,我将使用它作为 class 来处理 Firebase 实时数据库的所有 read/write/update 操作。
期望的结果是,如果我在我的应用程序的任何地方使用这个 class,我应该向它传递一个 groupIDPath
字符串,该字符串将用于在实时数据库中定位适当的节点。从那里,我应该能够 read/write/update 根据需要。
我尝试在下面执行此操作,但在我发表评论的行中收到指向 groupIDPath
的错误。错误说:The instance member 'groupIDPath' can't be accessed in an initializer.
我阅读了文档,但我不太理解他们的替代示例。考虑到我要在这里完成的工作,我应该如何构建这个 class?
import 'package:firebase_database/firebase_database.dart';
import 'message.dart';
class MessageDao {
MessageDao({required this.groupIDPath});
String groupIDPath; //example = 'groupChats/0exUS3P2XKFQ007TIMmm'
DatabaseReference _messagesRef = FirebaseDatabase.instance.reference().child(groupIDPath); //ERROR IS HERE
//Get stream of messages from realtime database based on group ID
}
在initializer list中分配_messagesRef
:
import 'package:firebase_database/firebase_database.dart';
import 'message.dart';
class MessageDao {
MessageDao({required this.groupIDPath}):
_messagesRef = FirebaseDatabase.instance.reference().child(groupIDPath);
String groupIDPath;
DatabaseReference _messagesRef;
}
我有一个名为 MessageDao
的 class,我将使用它作为 class 来处理 Firebase 实时数据库的所有 read/write/update 操作。
期望的结果是,如果我在我的应用程序的任何地方使用这个 class,我应该向它传递一个 groupIDPath
字符串,该字符串将用于在实时数据库中定位适当的节点。从那里,我应该能够 read/write/update 根据需要。
我尝试在下面执行此操作,但在我发表评论的行中收到指向 groupIDPath
的错误。错误说:The instance member 'groupIDPath' can't be accessed in an initializer.
我阅读了文档,但我不太理解他们的替代示例。考虑到我要在这里完成的工作,我应该如何构建这个 class?
import 'package:firebase_database/firebase_database.dart';
import 'message.dart';
class MessageDao {
MessageDao({required this.groupIDPath});
String groupIDPath; //example = 'groupChats/0exUS3P2XKFQ007TIMmm'
DatabaseReference _messagesRef = FirebaseDatabase.instance.reference().child(groupIDPath); //ERROR IS HERE
//Get stream of messages from realtime database based on group ID
}
在initializer list中分配_messagesRef
:
import 'package:firebase_database/firebase_database.dart';
import 'message.dart';
class MessageDao {
MessageDao({required this.groupIDPath}):
_messagesRef = FirebaseDatabase.instance.reference().child(groupIDPath);
String groupIDPath;
DatabaseReference _messagesRef;
}