Recently, I started exploring couchbase lite mobile sdk for iOS. The sync 
server and gateway are also up and running. I am going through the couch 
chat sample. There are few questions:

1. I am checking the basic authentication (CBLAuthentication). What is the 
correct way to check authentication success ? Do we have to rely on the 
status of push / pull replication as reported in the notification 
corresponding to replication progress ? If Yes then which status should be 
used for this ? If No then what is the other way to do this ?
2. I am trying to create a simple chat application in iOS swift whose data 
model resembles that of couchchat. The database setup is also successful. 
The replication is also accomplished. The chat room model is as below:

public class ChatRoom: CBLModel{    @NSManaged var title: String!    @NSManaged 
var channel_id: String!    @NSManaged var owners: [String]!    @NSManaged var 
members: [String]!}

Is above model structure correct ?

Then I tried to create a chatroom based on loggedInusername & another user name 
as in the function

public func chatRoom(forUser aUserName: String)->ChatRoom?{
        let chatRoomTitleToMatch = loggedInUserName + "_" + aUserName
        var chatRoom: ChatRoom? = nil

//myChatRoomsQuery is also created prior to its use here

        if let existingChatRooms = myChatRoomsQuery?.rows{
            while let aRow = existingChatRooms.nextRow() {
                let existingRoom = ChatRoom(for: aRow.document!)
                if (existingRoom?.owners.contains(loggedInUserName)) == true || 
(existingRoom?.owners.contains(aUserName)) == true{
                    chatRoom = existingRoom
                    break
                }
            }
        }
        if chatRoom == nil {
            let aNewChatRoom = ChatRoom(forNewDocumentIn: self.database!)
            aNewChatRoom.title = chatRoomTitleToMatch
            aNewChatRoom.owners = [loggedInUserName,aUserName]
            aNewChatRoom.members = aNewChatRoom.owners
            aNewChatRoom.channel_id = aNewChatRoom.document?.documentID
            aNewChatRoom.type = "room"
            do{
                try aNewChatRoom.save()
            }catch{
                print("Encountered error: \(error) while saving chat room.")
            }
            chatRoom = aNewChatRoom
        }
        return chatRoom
    }

But the room is not getting saved. Also there is no error returned in the save 
operation. What can be the probable issue ? The application has successfully 
connected to the database & push / pull replication has also occured.

I have also registered the above model class (ChatRoom) as below:

fileprivate func registerModelClasses(){        
self.database?.modelFactory?.registerClass("UserProfile", forDocumentType: 
"profile")        self.database?.modelFactory?.registerClass("ChatRoom", 
forDocumentType: "room")}

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/aef00b1e-7b41-4c72-9dab-dc5deff40d7a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to