2017-07-25 42 views
0

我在玩Realm和Realm Object Server,我有一些工作,但它的結構阻止了我。我像這樣執行基本登錄:從領域同步服務器聽取Auth成功

Realm.Sync.User.login('http://IPADDRESS:9080', 'user', 'password', (error, user) => { 
    if (!error) { 
    console.log('success'); 
    } else { 
    console.log(error); 
    } 
}); 

我知道我可以創建我的新境界對象與此閉包內的模式和同步配置。但是,由於我想在整個應用程序中使用領域對象,因此我希望auth進程爲1步,然後一旦成功,就可以創建/獲取我的Realm對象,以便在應用程序的其餘部分中使用它,包括聽事件。

如果我有某種像這樣結構的...

- src 
-- realm 
---- auth.js // does the auth 
---- index.js // exports my realm object 
-- App.js 
- index.ios.js 
- index.android.js 

隨着App.js爲主要切入點,我的申請,我想設置一些關於它的狀態改變當登錄成功,那麼我可以讓應用程序的其他部分可用。但我不想直接在我的App.js裏面使用驗證碼;我寧願爲此導入一些東西。

有什麼建議嗎?

回答

1

這看起來像一個更一般的問題NodeJS服務器模式。從我所讀的內容來看,在開始實際應用之前,你需要建立某種狀態(在這種情況下,是一個開放的Realm)。

我會建議從auth.js導出一個函數,返回一個Promise,最終返回您的Realm對象。這可以緩存在auth.js中,以避免每次請求時重新驗證並重新打開Realm。

App.js中,無論何時您需要Realm,您都需要調用此方法。這可以在服務器初始化之前完成,或者在初始化之後需要Realm時完成。