üzerinde atıfta bulunarak Çalıştığım sorunu vurgulayan bir gist oluşturdum. Başka bir yere enjekte etmem için Firebase
bağımlılığı sağlamak için bir Uygulama Modülü kullanıyorum. Veri katmanında, @Inject Firebase mFirebase
numaralı bağlantıya çalıştığımda, bağımlılığın hiçbir zaman tatmin edilmediğini.Hançer 2 @Nuthern
Context
diğer katmanlarımdan uzak tutmaya çalışıyorum, ancak Firebase
hizmeti buna bağlı. Android
sınıflarını iş mantığım dışında tutmaya yardımcı olmak için başka modeller öğrenmek istiyorum.
FirebaseService.java
public class FirebaseService {
@Inject Firebase mFirebaseRef; //NEVER GET'S INJECTED!
@Override
public LoginResult signinWithEmail(final String email, final String password) {
mFirebaseRef.dostuff(); //THIS REFERENCE DOESN'T GET INJECTED!
}
}
ApplicationModule
@Provides
@Singleton
Firebase provideFirebase(@ApplicationContext Context context) {
Firebase.setAndroidContext(context);
return new Firebase(Util.FIREBASE_URL);
}
ApplicationComponent
@Singleton
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {
@ApplicationContext Context context();
Application application();
Firebase firebase();
}
MyActivity
public class MyActivity extends AppCompatActivity {
private ActivityComponent mActivityComponent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public ActivityComponent getActivityComponent() {
if (mActivityComponent == null) {
mActivityComponent = DaggerActivityComponent.builder()
.activityModule(new ActivityModule(this))
.applicationComponent(MyApplication.get(this).getComponent())
.build();
}
return mActivityComponent;
}
tam kod örneği github
Kodun bağlantıları yeterli değildir, çünkü bağlantılar çürümeye eğilimlidir (artı başka bir siteye gitmemizi ve okumanızı gerektirir). Lütfen sorunuza minimum kodu ekleyin. –