作为内容发送什么
What to send as Content
在我的应用程序中,我使用 Room 库将数据保存到 Firebase 和本地存储。使用 Firebase,一切对我来说都很清楚。但是对于 Rom,我有疑问。我不知道要传递给 class 参数的内容。
PacketsLocalDataSource.kt
class PacketsLocalDataSource(val context: Context) {
lateinit var db: PacketsDatabase
lateinit var dao: PacketDao
fun saveLocal(packet: Packet) {
db = PacketsDatabase.getInstance(context)
dao = db.packetDao()
dao.add(packet)
}
}
此外,在下面的代码中,我想保存数据。但是在代码的第五行有一个错误:No value passed for parameter 'context'。请让我知道我需要发送什么。
class PocketScoutContainer {
private val firebaseRealtimeDatabase = Firebase.database
private val packetsRemoteDataSource = PacketsRemoteDataSource(firebaseRealtimeDatabase)
private val packetsLocalDataSource = PacketsLocalDataSource()
val packetsRepository = PacketsRepository(packetsRemoteDataSource, packetsLocalDataSource)
}
您需要将 Context 传递给 PacketsLocalDataSource 构造函数。反过来,在创建 class PocketScoutContainer 的实例时必须传递上下文。所以:
class PocketScoutContainer(context: Context) {
//...
private val packetsLocalDataSource = PacketsLocalDataSource(context)
//...
并且在某些 Activity 中创建 PocketScoutContainer 实例时:
val pocketScoutContainer = PocketScoutContainer(this.applicationContext)
如果 PocketScoutContainer 在 activity 或片段之外的某处实例化,您将需要在那里传递上下文。
这可能会有进一步的帮助:Dependency Injection
在我的应用程序中,我使用 Room 库将数据保存到 Firebase 和本地存储。使用 Firebase,一切对我来说都很清楚。但是对于 Rom,我有疑问。我不知道要传递给 class 参数的内容。
PacketsLocalDataSource.kt
class PacketsLocalDataSource(val context: Context) {
lateinit var db: PacketsDatabase
lateinit var dao: PacketDao
fun saveLocal(packet: Packet) {
db = PacketsDatabase.getInstance(context)
dao = db.packetDao()
dao.add(packet)
}
}
此外,在下面的代码中,我想保存数据。但是在代码的第五行有一个错误:No value passed for parameter 'context'。请让我知道我需要发送什么。
class PocketScoutContainer {
private val firebaseRealtimeDatabase = Firebase.database
private val packetsRemoteDataSource = PacketsRemoteDataSource(firebaseRealtimeDatabase)
private val packetsLocalDataSource = PacketsLocalDataSource()
val packetsRepository = PacketsRepository(packetsRemoteDataSource, packetsLocalDataSource)
}
您需要将 Context 传递给 PacketsLocalDataSource 构造函数。反过来,在创建 class PocketScoutContainer 的实例时必须传递上下文。所以:
class PocketScoutContainer(context: Context) {
//...
private val packetsLocalDataSource = PacketsLocalDataSource(context)
//...
并且在某些 Activity 中创建 PocketScoutContainer 实例时:
val pocketScoutContainer = PocketScoutContainer(this.applicationContext)
如果 PocketScoutContainer 在 activity 或片段之外的某处实例化,您将需要在那里传递上下文。
这可能会有进一步的帮助:Dependency Injection