我已经加载了FireViewDatabse项(用户)的ListView活动。单击ListView的项目后,它将相关用户的项目键(FirebaseDatabase Hash)传递给另一个Activity,在该Activity中有一个确认按钮。单击确认按钮后,它应该在用户项目键指定的FirebaseDatabase的项目字段中设置一个确认值(“已接受”)。
问题是,事实并非如此。我的意思是,如果我使用CURRENT userId哈希,它将在FirebaseDatabase的userId字段中完美地设置“ Accepted”,但是如果我使用另一个item-user的Key,则不会这样做。谁能告诉我为什么?
这是单击确认按钮的确认活动的一部分:
riderKey = intentGet.getStringExtra("riderKey");
Log.i("KeySetRider", riderKey);
Log.i("KeySetUser", MainActivity.userId);
FirebaseDatabase.getInstance().getReference().child("users").child(String.valueOf(riderKey )).child("Request").setValue("Accepted");
FirebaseDatabase.getInstance().getReference().child("users").child(String.valueOf(MainActivity.userId )).child("Request").setValue("Accepted");
这是我在确认活动中获得的钥匙:
2020-02-02 22:15:58.268 10620-10620/com.example.uberapp I/KeySetRider: XhNENH3g68SsrtPhmdFmY
2020-02-02 22:15:58.268 10620-10620/com.example.uberapp I/KeySetUser: klaunWpq4ASLfiduCoU2d
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9XMndsNi5wbmcifQ==” alt =“![在此处输入图像描述”>] 1
] 2
对不起,我无法对此问题发表评论,尽管我没有真正发布解决方案,但我必须在这里写评论。
我注意到您从logcat输出中复制的键与屏幕截图中显示的键不完全相同。他们似乎被截断了。知道为什么吗?如果您在代码中尝试使用适当的常量而不是变量,是否可行?您如何接收/处理这些ID可能是个问题。
另一种假设可能是用户权限在数据库中设置不正确,因此仅允许用户编辑其记录。不确定您的应用程序是否可行,因为您仅发布这两个记录,而我们不知道它们的存储位置以及具有的数据库配置。