2017-05-13 122 views
0

我已經創建了一種管理所有用戶之間的共享表的方法,但是我看不到此表。我剛剛刪除了「〜」字符,如果我離開「〜」字符,但它只有所有者才能看到的表,它就會起作用。我不知道爲什麼它不起作用。也許這不是在用戶之間共享表格的正確方式?無法在Realm對象服務器上看到數據庫

static public func setGlobalDatabase(database:String, completion: @escaping (_ realm: Realm?, _ error: Error?) -> Void) { 

    let realmPath = RealmService.REALM_SERVER_DATA + "/" + ConstanteService.APP_DOMAINE + "-" + database 
    let user = SyncUser.current 
    if user == nil { 
     SyncUser.logIn(with: .usernamePassword(username: RealmService.username, password: RealmService.password, register: false), server: URL(string: RealmService.REALM_SERVER_HTTP)!) { user, error in 
      guard let user = user else { 
       completion(nil, error) 
       return 
      } 

      DispatchQueue.main.async { 


       // Open Realm 
       let configuration = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: URL(string: realmPath)!)) 



       let permission = SyncPermissionValue(realmPath: realmPath, // The remote Realm path on which to apply the changes 
        userID: "*", // The user ID for which these permission changes should be applied 
        accessLevel: .write) // The access level to be granted 
       user.applyPermission(permission) { error in 
        if let error = error { 
         // handle error 
         return 
        } 
        // permission was successfully applied 
       } 


       completion(try? Realm(configuration: configuration), nil) 
      } 
     } 
    } 
    else{ 
     DispatchQueue.main.async { 
      // Open Realm 
      let configuration = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user!, realmURL: URL(string: realmPath)!)) 
      completion(try? Realm(configuration: configuration), nil) 
     } 

    } 
} 

回答

0

如果要授予用戶領域給其他用戶(~/shared_user_realm),你需要先獲取其他用戶的權限的設備來獲取完整路徑shared_user_realm並將其用於SyncConfiguration權限。多見於https://realm.io/docs/swift/latest/#access-control

如果你希望有共同的全球領域(如/shared_realm),你應該與admin用戶創建(僅管理員有訪問/)和授予權限給其他用戶。之後,你可以在你的應用中使用這個領域。

相關問題