मैं अपने आईओएस एप्लिकेशन और एंड्रॉइड एप्लिकेशन के बीच डेटा सिंक्रनाइज़ करने की कोशिश कर रहा हूं। एंड्रॉइड एप्लिकेशन दायरे से ठीक से पढ़ सकता है, लेकिन मेरा स्विफ्ट प्रोग्राम संघर्ष कर रहा है, और त्रुटि संदेश बहुत जानकारीपूर्ण नहीं है।दायरे ऑब्जेक्ट सर्वर: left.optional == right.optional (एंड्रॉइड और आईओएस के बीच डेटा सिंक) पर जोर देने में असफल रहा
2016-11-08 08:53:43.919 iOSRealm[2629:65667] Sync: Connection[1]: Session[1]: Bad changeset received: Assertion failed: left().nullable == right().nullable
है पता नहीं इसका क्या मतलब मैं या इसे ठीक करने के:
मैं यह त्रुटि संदेश मिल रहा हूँ। यह कैसे मैं अपने आप को क्षेत्र वस्तु सर्वर के साथ प्रमाणित है:
private func synchronouslyLogInUser() throws {
SyncUser.authenticateWithCredential(Credential.usernamePassword(username, password: password, actions:.UseExistingAccount), authServerURL: authURL) { (user, error) in
print("sent login request")
if let user = user {
print("user was not nil")
self.setDefaultRealmConfiguration(user)
}
if let error = error where error.code == SyncError.HTTPStatusCodeError.rawValue && (error.userInfo["statusCode"] as? Int) == 400 {
print("invalid user and pass")
} else {
print(error)
}
}
}
private func setDefaultRealmConfiguration(user: SyncUser) {
Realm.Configuration.defaultConfiguration = Realm.Configuration(syncConfiguration: (user, realmURL), objectTypes: [Weather.self, Wind.self])
Realm.Configuration.defaultConfiguration.deleteRealmIfMigrationNeeded = true
realm = try! Realm()
}
मैं देख रहा हूँ उत्पादन कंसोल के लिए मुद्रित किया जा रहा है ताकि मैं जानता हूँ कि लॉगिन प्रयास सफल रहा था। मुझे नहीं लगता कि यह एक विसंगति डेटाबेस के साथ एक समस्या है, क्योंकि मैंने deleteRealmIfMigrationNeeded
ध्वज true
पर सेट किया है।
इस त्रुटि संदेश का क्या अर्थ है और मैं इसे कैसे ठीक करूं?
उपयुक्त ऑब्जेक्ट रियलम सर्वर लॉग यहां पाए जा सकते हैं: http://pastebin.com/raw/J9mU4H0u - ऑफ-साइट लिंक के लिए मेरी क्षमा, लेकिन यह एक लंबी लॉग फ़ाइल है।
मेरे स्विफ्ट मॉडल इस प्रकार हैं:
class Weather : Object {
dynamic var id = 0
dynamic var date = ""
dynamic var forecast = ""
dynamic var humidity = ""
dynamic var wind: Wind!
override class func primaryKey() -> String? {
return "id"
}
}
class Wind: Object {
dynamic var direction = ""
dynamic var speed = ""
}
एंड्रॉयड मॉडल:
public class Weather extends RealmObject {
@PrimaryKey
public int id;
public String date;
public String forecast;
public String humidity;
public Wind wind;
}
public class Wind extends RealmObject {
public String direction;
public String speed;
}
अग्रिम धन्यवाद!
अच्छी तरह से मिल गया! मैंने रियलम मोबाइल प्लेटफ़ॉर्म के साथ क्रॉस-संगतता के संबंध में हमारी आंतरिक चर्चाओं में इसे हाइलाइट किया है और हम भविष्य में इसे और अधिक स्पष्ट बनाने की कोशिश करेंगे। साझा करने के लिए धन्यवाद! :) – TiM