gpt4 book ai didi

java - Android Spinner 中的 Firebase 数据

转载 作者:行者123 更新时间:2023-12-02 11:26:36 25 4
gpt4 key购买 nike

这是上一篇文章的后续内容,我仍然遇到一些问题 - 请参阅此处的原始文章:Populating Android spinner with Firebase Data .

我对 Firebase 规则进行了修改,以便为每个用户实现基于用户的身份验证。我已经成功实现了这一点,但是仍然存在一个问题 - 我的 MaintenanceActivity 中的微调器不再填充来自 propertiespropertyAddress 属性code> 我的数据库中的节点。

我当前的安全设置非常适合添加、删除和更新记录,但是,它似乎没有使用 propertyAddress 填充微调器。

这是我的安全规则:

    {
"rules": {
"maintenance" : {
"$uid" : {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
"properties" : {
"$uid" : {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}

来自 MaintenanceActivity 的代码摘录,我希望它能够填充微调器:

fDatabaseRoot.child("properties").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {

final List<String> propertyAddressList = new ArrayList<String>();

for (DataSnapshot addressSnapshot: dataSnapshot.getChildren()) {
String propertyAddress = addressSnapshot.child("propertyAddress").getValue(String.class);
if (propertyAddress!=null){
propertyAddressList.add(propertyAddress);
}
}

Spinner spinnerProperty = (Spinner) findViewById(R.id.spinnerProperty);
ArrayAdapter<String> addressAdapter = new ArrayAdapter<String>(MaintenanceActivity.this, android.R.layout.simple_spinner_item, propertyAddressList);
addressAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerProperty.setAdapter(addressAdapter);
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

为了进一步说明,这是我的数据结构

Data Structure

最佳答案

根据properties节点你有两个id,第一个是userid第二个是 push() 生成的随机 ID方法。

为了能够访问特性地址,您需要获取 userid然后使用 for(DataSnapshot addressSnapshot: dataSnapshot.getChildren()) {您将迭代随机 id 并获取其中的属性。

所以改变这个:

fDatabaseRoot.child("properties").addListenerForSingleValueEvent(new ValueEventListener() {

对此:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();
fDatabaseRoot.child("properties").child(userid).addListenerForSingleValueEvent(new ValueEventListener() {

关于java - Android Spinner 中的 Firebase 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49576098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com