trevjones
inline fun <reified T> fromSnapshot(snapshot: DataSnapshot): T { val model = snapshot.getValue(T::class.java) model.key = snapshot.key // ... return model }