作者:刘刘刘存乐_626 | 来源:互联网 | 2023-05-19 01:24
Iamworkingonanappdisplayingplaces(downloadedfromfirebase)basedonuserlocation.我正在开发一个应
I am working on an app displaying places (downloaded from firebase) based on user location.
我正在开发一个应用程序,根据用户位置显示位置(从firebase下载)。
I have currently 5k entries and they are displayed in about 10seconds. I plan to have 80k entries and I don't want users to wait that long.
我目前有5k条目,它们在大约10秒内显示。我计划有80k条目,我不希望用户等那么久。
What I did : I created a Place class, I do 'observe'(.value) on my firebase ref and on each child I put each element in an attribute of the Place class. Then the place:Place = Place(attributes) id added to an array:Place until all places have been downloaded.
我做了什么:我创建了一个Place类,我在firebase ref上'观察'(。value),并且在每个子元素上我将每个元素放在Place类的属性中。然后将地点:Place = Place(attributes)id添加到数组中:放置直到所有地点都已下载。
self.ref.queryOrderedByKey().observe(.value, with: {(snapshot) in
if snapshot.childrenCount > 0 {
for place in snapshot.children.allObjects as! [DataSnapshot] {
When all places are in the array I compare places locations with the user location and sort the array to display them by distance in a tableview.
当所有位置都在数组中时,我将位置与用户位置进行比较,并对数组进行排序,以便在tableview中按距离显示它们。
What I tried: I also tried to use GeoFire but it is slower.
我尝试了什么:我也尝试使用GeoFire,但速度较慢。
How the db looks like (80k elements) :
db的外观如何(80k元素):
{
"users": {
"DFkjdhfgYG": {
"id":"DFkjdhfgYG"
,"key2":"value"
,"key3":"value"
,"key4":"value"
,"key5":"value"
,"key6":"value"
,"key7":"value"
,"key8":"value"
,"key9":"value"
,"key10":"value"
,"key11":"value"
,"key12":value
,"key13":value
,"key14":"value"
,"key15":"value"
,"key16":"value"
,"key17":"value"
,"key18":"value"
,"key19":"value"
,"key20":"value"
,"key21":value
,"key22":value
,"key23":value
,"key24":value
,"key25":value
,"key26":"value"
,"key27":value
,"key28":value
,"key29":"value"
},
"BVvfdTRZ": {
"id":"BVvfdTRZ"
,"key2":"value"
,"key3":"value"
,"key4":"value"
,"key5":"value"
,"key6":"value"
,"key7":"value"
,"key8":"value"
,"key9":"value"
,"key10":"value"
,"key11":"value"
,"key12":value
,"key13":value
,"key14":"value"
,"key15":"value"
,"key16":"value"
,"key17":"value"
,"key18":"value"
,"key19":"value"
,"key20":"value"
,"key21":value
,"key22":value
,"key23":value
,"key24":value
,"key25":value
,"key26":"value"
,"key27":value
,"key28":value
,"key29":"value"
}
}
}
Now I don't know what to do and I absolutely need to user Firebase.
现在我不知道该怎么做,我绝对需要使用Firebase。
Can you help me to improve the way I download firebase db elements, or to show me another way to do it, to make the whole process faster ?
你能帮助我改进我下载firebase db元素的方式,或者告诉我另一种方法,让整个过程更快吗?
Thanks !
谢谢 !
1 个解决方案