2016-08-09 17 views
7

Tôi đang cố lưu trữ Khóa duy nhất được tạo ra khi childByAutoId được gọi. Về lý thuyết nó sẽ giúp bản đồ cập nhật hoặc thay đổi trên một đứa trẻ được chỉ định mà cần phải xảy ra sau này trong ứng dụng của tôi.Cơ sở dữ liệu FIREBASE - Lưu trữ khóa duy nhất cho nút con (Swift/IOS)

Tôi khá mới với cơ sở dữ liệu phân cấp của Firebase và nếu cách tiếp cận được mô tả bên dưới không chính xác, vui lòng không thay thế.

Tôi khá mới để căn cứ hỏa lực và có một ứng dụng nhiều người chơi, nơi cấu trúc của tôi hiện trông giống như sau:

"HTGames" : { 

"-KFGX5H3rLSnpPvupakm" : { 
    { 
    "Red" : 1, 
    "Green" : 3, 
    "Blue" : 2, 
    "GameLimit" : 1, 
    "P1Name" : 3, 
    "P2Name" : 2, 
    "P3Name" : 1, 
    "P1Points" : 3, 
    "P2Points" : 2, 
    "P3Points": 3, 
    "numberOfPlayers" : 1. 
    "gameStart": true 
    } 
}, 
    "-X5Hhgljh3rLSnpPvum" : { 
    { 
    "Red" : 1, 
    "Green" : 3, 
    "Blue" : 2, 
    "GameLimit" : 1, 
    "P1Name" : 3, 
    "P2Name" : 2, 
    "P3Name" : 1, 
    "P1Points" : 3, 
    "P2Points" : 2, 
    "P3Points": 3, 
    "numberOfPlayers" : 1. 
    "gameStart": true 
    }}} 
} 

Swift gọi phương thức dưới đây ...

func startNewGame(){ 
//Database reference object 
    let databaseRef = FIRDatabase.database().reference() 

    let gameTable : [String : AnyObject] = ["Green": "", "Red": "", "Blue": "", "GameTypePoint": "","P1Name": "", "P2Name": "", "P3Name": "", "P1Points": "","P2Points": "", "P3Points": "","NumOfPlayers": "","GameStart": ""] 

//Auto generates unique ID and creates child under "HTGame" parent 
    databaseRef.child("HTGame").childByAutoId().setValue(gameTable) 

//**********I would like to store key locally here*********// 
    //let key = 
} 
+0

bạn có muốn tất cả các phím hoặc chỉ là chìa khóa bạn vừa lưu trữ không? – Dravidian

+0

@Dravidian \t Chỉ cần tôi lưu trữ. – Cari95

Trả lời

9

Bạn có thể lấy chìa khóa từ đứa trẻ mới, nếu bạn giữ một tham chiếu đến nó:

let newRef = databaseRef.child("HTGame").childByAutoId() 
newRef.setValue(gameTable) 

let key = newRef.key 

Thông tin thêm về điều này trong dữ liệu lưu hướng dẫn: https://firebase.google.com/docs/database/ios/save-data#append_to_a_list_of_data

+1

Cảm ơn rất nhiều! Câu trả lời của bạn là tại chỗ với những gì tôi cần – Cari95

Các vấn đề liên quan